package org.signalml.app.view.document.opensignal.elements; import java.awt.Color; import java.awt.Component; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; import org.signalml.app.model.document.opensignal.elements.ChooseExperimentTableModel; public class ChooseExperimentTable extends JTable { private TableCellRenderer tableCellRenderer = new ChooseExperimentsTableCellRenderer();; public ChooseExperimentTable(ChooseExperimentTableModel model) { super(model); setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } @Override public TableCellRenderer getCellRenderer(int row, int column) { return tableCellRenderer; } } class ChooseExperimentsTableCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col); ChooseExperimentTableModel tableModel = (ChooseExperimentTableModel) table.getModel(); label.setBackground(tableModel.getRowColor(row, isSelected)); if (isSelected) { label.setForeground(Color.white); } else { label.setForeground(Color.black); } return label; } }