@Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { setForeground(table.getSelectionForeground()); super.setBackground(table.getSelectionBackground()); } else { setForeground(table.getForeground()); setBackground(table.getBackground()); } // Select the current value setSelectedItem(value); return this; }
public FoodEditor(JFrame parent, RItem data) { super(parent, "Scroll Editor: " + data.id); this.data = data; JPanel itemProps = new JPanel(); GroupLayout layout = new GroupLayout(itemProps); itemProps.setLayout(layout); layout.setAutoCreateGaps(true); JLabel nameLabel = new JLabel("Name: "); JLabel costLabel = new JLabel("Cost: "); JLabel colorLabel = new JLabel("Color: "); JLabel charLabel = new JLabel("Character: "); JLabel weightLabel = new JLabel("Weight: "); JLabel spellLabel = new JLabel("Spell: "); nameField = new JTextField(15); costField = new JFormattedTextField(NeonFormat.getIntegerInstance()); colorBox = new JComboBox<String>(ColorFactory.getColorNames()); colorBox.setBackground(Color.black); colorBox.setRenderer(new ColorCellRenderer()); colorBox.addActionListener(new ColorListener(colorBox)); charField = new JFormattedTextField(getMaskFormatter("*", 'X')); weightField = new JFormattedTextField(NeonFormat.getFloatInstance()); spellBox = new JComboBox<String>(loadSpells()); JLabel nameHelpLabel = HelpLabels.getNameHelpLabel(); JLabel costHelpLabel = HelpLabels.getCostHelpLabel(); JLabel colorHelpLabel = HelpLabels.getColorHelpLabel(); JLabel charHelpLabel = HelpLabels.getCharHelpLabel(); JLabel weightHelpLabel = HelpLabels.getWeightHelpLabel(); JLabel foodHelpLabel = HelpLabels.getFoodEffectHelpLabel(); layout.setVerticalGroup( layout .createSequentialGroup() .addGroup( layout .createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(nameLabel) .addComponent(nameField) .addComponent(nameHelpLabel)) .addGroup( layout .createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(costLabel) .addComponent(costField) .addComponent(costHelpLabel)) .addGroup( layout .createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(colorLabel) .addComponent(colorBox) .addComponent(colorHelpLabel)) .addGroup( layout .createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(charLabel) .addComponent(charField) .addComponent(charHelpLabel)) .addGroup( layout .createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(weightLabel) .addComponent(weightField) .addComponent(weightHelpLabel)) .addGroup( layout .createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(spellLabel) .addComponent(spellBox) .addComponent(foodHelpLabel))); layout.setHorizontalGroup( layout .createSequentialGroup() .addGroup( layout .createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(nameLabel) .addComponent(costLabel) .addComponent(colorLabel) .addComponent(charLabel) .addComponent(weightLabel) .addComponent(spellLabel)) .addGroup( layout .createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent( nameField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(costField) .addComponent(colorBox) .addComponent(charField) .addComponent(weightField) .addComponent(spellBox)) .addGap(10) .addGroup( layout .createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(nameHelpLabel) .addComponent(costHelpLabel) .addComponent(colorHelpLabel) .addComponent(charHelpLabel) .addComponent(weightHelpLabel) .addComponent(foodHelpLabel))); JScrollPane propScroller = new JScrollPane(itemProps); propScroller.setBorder(new TitledBorder("Properties")); frame.add(propScroller, BorderLayout.CENTER); }
public SyntaxTab() { super(new BorderLayout(), "Syntax highlighting"); /* * upper checkboxes */ JPanel upper = new JPanel(new GridLayout(2, 1, 0, 0)); upper.setOpaque(false); upper.add(MyPanel.wrap(highlightSyntax)); upper.add(MyPanel.wrap(matchBracket)); highlightSyntax.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { SyntaxTab.this.updateComponentStatus(); } }); this.add(upper, BorderLayout.PAGE_START); /* * upper panel (painters) */ painterComboBox.setSelectedItem(myjava.gui.syntax.Painter.getCurrentInstance()); painterComboBox.setFont(f13); if (isMetal) painterComboBox.setBackground(Color.WHITE); painterComboBox.addItemListener(this.painterChangeListener); JButton addPainter = new MyButton("+") { { if (isMetal) { this.setPreferredSize(new Dimension(28, 28)); } } @Override public void actionPerformed(ActionEvent ev) { String name; do { name = JOptionPane.showInputDialog( SyntaxTab.this, "Enter a name:", "Name", JOptionPane.QUESTION_MESSAGE); } while (!myjava.gui.syntax.Painter.isValidPrompt(name, SyntaxTab.this)); if ((name != null) && (!name.isEmpty())) { // name is valid, neither cancelled nor pressed enter directly myjava.gui.syntax.Painter newPainter = ((myjava.gui.syntax.Painter) (painterComboBox.getSelectedItem())) .newInstance(name); addPainter(newPainter); System.out.println("now set, should call listener"); painterComboBox.setSelectedItem(newPainter); // auto-call ItemListener(s) } } }; JButton removePainter = new MyButton("-") { { if (isMetal) { this.setPreferredSize(new Dimension(28, 28)); } } @Override public void actionPerformed(ActionEvent ev) { myjava.gui.syntax.Painter painter = (myjava.gui.syntax.Painter) (painterComboBox.getSelectedItem()); if (painter.equals(myjava.gui.syntax.Painter.getDefaultInstance())) { JOptionPane.showMessageDialog( SyntaxTab.this, "The default painter cannot be removed.", "Error", JOptionPane.ERROR_MESSAGE); } else { int option = JOptionPane.showConfirmDialog( SyntaxTab.this, "Remove painter \"" + painter.getName() + "\"?", "Confirm", JOptionPane.YES_NO_OPTION); if (option == JOptionPane.YES_OPTION) { // remove "painter" removedPainters.add(painter); painterComboBox.removeItemListener(painterChangeListener); painterComboBox.setSelectedItem(myjava.gui.syntax.Painter.getDefaultInstance()); painterComboBox.removeItem(painter); for (Iterator<EntryListPanel> it = listPanelSet.iterator(); it.hasNext(); ) { EntryListPanel panel = it.next(); if (panel.getPainter().getName().equals(painter.getName())) { System.out.println("removing, then break"); it.remove(); centerPanel.remove(panel); break; } } painterComboBox.addItemListener(painterChangeListener); cardLayout.show( centerPanel, myjava.gui.syntax.Painter.getDefaultInstance().getName()); } } } }; // lower part JPanel center = new JPanel(new BorderLayout()); JLabel selectLabel = new MyLabel("Selected painter:"); center.add( MyPanel.wrap(MyPanel.CENTER, selectLabel, painterComboBox, addPainter, removePainter), BorderLayout.PAGE_START); componentSet.addAll(Arrays.asList(selectLabel, addPainter, removePainter)); center.add(centerPanel, BorderLayout.CENTER); this.add(center, BorderLayout.CENTER); cardLayout.show(centerPanel, myjava.gui.syntax.Painter.getCurrentInstance().getName()); }