@Override public Component prepareRenderer(TableCellRenderer tcr, int row, int column) { Component c = super.prepareRenderer(tcr, row, column); if (isRowSelected(row)) { c.setForeground(getSelectionForeground()); c.setBackground(getSelectionBackground()); } else { c.setForeground(getForeground()); c.setBackground(row % 2 == 0 ? EVEN_COLOR : getBackground()); } return c; }
@Override public void setBackground(Color color) { super.setBackground(color); for (Component c : this.getComponents()) { if (c instanceof DataPanel) { c.setBackground(color); } } }
private static Component setLabelColors( final Component label, final JTable table, final boolean isSelected, final int row) { if (label instanceof JComponent) { ((JComponent) label).setOpaque(true); } label.setForeground(isSelected ? table.getSelectionForeground() : table.getForeground()); label.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground()); return label; }
// Implementation of TableCellRenderer interface public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { TableCellRenderer rend = super.getCellRenderer(row, column); Component c = rend.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); c.setBackground(getBack(isSelected, hasFocus, row, column)); c.setForeground(getFore(isSelected, hasFocus, row, column)); return c; }
@Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component result = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (!isSelected) { MyTableModel tableModel = (MyTableModel) table.getModel(); Color color = table.getBackground(); switch (tableModel.getKind(row)) { case ERROR: color = new Color(255, 175, 175); break; case CONFLICT: color = new Color(255, 240, 240); break; } result.setBackground(color); } return result; }
public void showFrame(Editor editor, ContributionType contributionType) { this.editor = editor; // Calculating index to switch to the required tab int index = getIndex(contributionType); if (dialog == null) { makeFrame(editor); // done before as downloadAndUpdateContributionListing() // requires the current selected tab tabbedPane.setSelectedIndex(index); downloadAndUpdateContributionListing(editor.getBase()); if (index != 4) { Component selected = tabbedPane.getTabComponentAt(tabbedPane.getSelectedIndex()); selected.setBackground(new Color(0xe0fffd)); selected.setForeground(Color.BLACK); } else { updateTabPanel.setBackground(new Color(0xe0fffd)); updateTabLabel.setForeground(Color.BLACK); } } tabbedPane.setSelectedIndex(index); dialog.setVisible(true); }
@Override public Component getTableCellEditorComponent( JTable table, Object value, boolean isSelected, int row, int column) { final DefaultMutableTreeNode defaultNode = (DefaultMutableTreeNode) ((TreeTable) table).getTree().getPathForRow(row).getLastPathComponent(); myCurrentEditor = null; myCurrentNode = null; if (defaultNode instanceof MyTreeNode) { MyTreeNode node = (MyTreeNode) defaultNode; myCurrentNode = node; if (node.getKey() instanceof BooleanOption) { myCurrentEditor = myBooleanEditor; myBooleanEditor.setSelected(node.getValue() == Boolean.TRUE); myBooleanEditor.setEnabled(node.isEnabled()); } else if (node.getKey() instanceof IntOption) { IntOption intOption = (IntOption) node.getKey(); myCurrentEditor = myIntOptionsEditor; myIntOptionsEditor.setText( intOption.isDefaultValue(node.getValue()) ? "" : node.getValue().toString()); myIntOptionsEditor.setMinValue(intOption.getMinValue()); myIntOptionsEditor.setMaxValue(intOption.getMaxValue()); myIntOptionsEditor.setDefaultValue(intOption.getDefaultValue()); } else { myCurrentEditor = myOptionsEditor; myOptionsEditor.setCell(table, row, column); myOptionsEditor.setText(String.valueOf(node.getValue())); myOptionsEditor.setOptions(((SelectionOption) node.getKey()).options); myOptionsEditor.setDefaultValue(node.getValue()); } } if (myCurrentEditor != null) { myCurrentEditor.setBackground(table.getBackground()); } return myCurrentEditor; }
/** * This is the only method necessary to overload. All we have to do is print the String value of * the model along with its index in the ModelList data structure. * * @param list the JList * @param value the value * @param index the index of the value * @param isSelected if true the item is selected * @param cellHasFocus whether it has the focus * @return the rendering component */ public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { Component modelComponent = null; if (value instanceof EnsembleLibraryModel) { EnsembleLibraryModel model = ((EnsembleLibraryModel) value); String modelString = index + ": " + model.getStringRepresentation().replaceAll("weka.classifiers.", ""); modelComponent = super.getListCellRendererComponent(list, modelString, index, isSelected, cellHasFocus); if (!model.getOptionsWereValid()) { modelComponent.setBackground(Color.pink); } ((JComponent) modelComponent).setToolTipText(model.getDescriptionText()); } return modelComponent; }
/** * Renders a table cell in the main JTable. As a TableCellRenderer, we have to implement this * method, but we use it to colour different types of matches in different ways. Remember that * this is run every time a cell is displayed on the screen, so it needs to be as fast as can be. * * @param table The table which needs rendering. * @param value The object which needs rendering. For now, this can only be a Name object, but * later on we might colour different types of cells in different ways. * @param isSelected Is this cell selected, i.e. is the row selected? * @param hasFocus Is this cell focused, i.e. is this individual cell selected? * @param row The row coordinate of this cell. * @param column The column coordinate of this cell. * @return A component representing this cell. */ @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { // TODO: Check if we can get a saving out of this by just rendering a JLabel/JTextField // directly. Component c = defTableCellRenderer.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); // Set all backgrounds to white. c.setBackground(Color.WHITE); if (value == null) { // Null values look null-ish. c.setBackground(COLOR_NULL); return c; } else if (hasFocus) { // ANY cell with focus should look focussed. c.setBackground(COLOR_FOCUS); return c; } else if (Name.class.isAssignableFrom(value.getClass())) { // Aha, a Name! Color it special. Name name = (Name) value; int str_length = name.toString().length(); if (currentMatch == null) { // No current match? Then just colour blank cells blank, // and unmatched name colours special so people know that // they have been recognized as names. if (str_length == 0) { c.setBackground(COLOR_BLANK_CELL); } else { c.setBackground(COLOR_NAME_UNMATCHED); } } else { // So which RowIndex is the match against? RowIndex against = currentMatch.getAgainst(); // System.err.println("Checking against: " + against); if (str_length == 0) { // Mark blank cells as such. c.setBackground(COLOR_BLANK_CELL); } else if (against.hasName(name)) { // Perfect match! c.setBackground(COLOR_NAME_FULL_MATCH); } else if (against.hasName(name.getGenus())) { // Genus-match. c.setBackground(COLOR_NAME_GENUS_MATCH); } else { // No match! c.setBackground(COLOR_NAME_NO_MATCH); } } } else { // Not a name? Note that Strings will NOT make it here: we don't // push Strings through this. So this is really just for later. c.setBackground(COLOR_NULL); } // If the row is selected, make it darker. if (isSelected) c.setBackground(c.getBackground().darker()); return c; }