Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - package swingtest;
 - import java.awt.BorderLayout;
 - import java.awt.Color;
 - import java.awt.Component;
 - import java.awt.EventQueue;
 - import javax.swing.JFrame;
 - import javax.swing.JScrollPane;
 - import javax.swing.JTable;
 - import javax.swing.table.DefaultTableCellRenderer;
 - import javax.swing.table.DefaultTableModel;
 - @SuppressWarnings("serial")
 - public class SwingTest {
 - static class TestModel extends DefaultTableModel {
 - TestModel () {
 - super(new Object[] { "ID", "Name", "Value" }, 0);
 - addRow(new Object[] { "1", "F", "Yes" });
 - addRow(new Object[] { "2", "E", "No" });
 - addRow(new Object[] { "3", "D", "Yes" });
 - addRow(new Object[] { "4", "C", "No" });
 - addRow(new Object[] { "5", "B", "No" });
 - addRow(new Object[] { "6", "A", "No" });
 - }
 - }
 - static class TestRenderer extends DefaultTableCellRenderer {
 - @Override public Component getTableCellRendererComponent (
 - JTable table, Object value, boolean selected, boolean focus,
 - int row, int column)
 - {
 - Component c = super.getTableCellRendererComponent(table, value, selected, focus, row, column);
 - // if you want to experiment, remove this conversion and watch what happens when you
 - // sort rows or rearrange columns.
 - int model_row = table.convertRowIndexToModel(row);
 - int model_col = table.convertColumnIndexToModel(column);
 - // you could use the passed in value but this example queries the model
 - // just for illustrative purposes.
 - if (table.getModel().getValueAt(model_row, model_col).toString().equalsIgnoreCase("yes"))
 - c.setBackground(Color.GREEN);
 - else
 - c.setBackground(table.getBackground());
 - return c;
 - }
 - }
 - public SwingTest() {
 - JFrame frame = new JFrame();
 - frame.setBounds(100, 100, 538, 441);
 - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 - JTable table = new JTable();
 - table.setModel(new TestModel());
 - table.setDefaultRenderer(Object.class, new TestRenderer()); // note: no need to pass data/model to renderer!
 - table.setAutoCreateRowSorter(true);
 - JScrollPane pane = new JScrollPane(table);
 - frame.getContentPane().add(pane, BorderLayout.CENTER);
 - frame.setVisible(true);
 - }
 - public static void main(String[] args) {
 - EventQueue.invokeLater(new Runnable() {
 - @Override public void run () {
 - try {
 - new SwingTest();
 - } catch (Exception e) {
 - e.printStackTrace();
 - }
 - }
 - });
 - }
 - }
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment