Advertisement
Guest User

jtable cell background + model example

a guest
Feb 27th, 2017
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. package swingtest;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.EventQueue;
  7.  
  8. import javax.swing.JFrame;
  9. import javax.swing.JScrollPane;
  10. import javax.swing.JTable;
  11. import javax.swing.table.DefaultTableCellRenderer;
  12. import javax.swing.table.DefaultTableModel;
  13.  
  14. @SuppressWarnings("serial")
  15. public class SwingTest {
  16.  
  17.     static class TestModel extends DefaultTableModel {
  18.         TestModel () {
  19.             super(new Object[] { "ID", "Name", "Value" }, 0);
  20.             addRow(new Object[] { "1", "F", "Yes" });
  21.             addRow(new Object[] { "2", "E", "No" });
  22.             addRow(new Object[] { "3", "D", "Yes" });
  23.             addRow(new Object[] { "4", "C", "No" });
  24.             addRow(new Object[] { "5", "B", "No" });
  25.             addRow(new Object[] { "6", "A", "No" });
  26.         }
  27.     }
  28.    
  29.     static class TestRenderer extends DefaultTableCellRenderer {
  30.         @Override public Component getTableCellRendererComponent (
  31.                 JTable table, Object value, boolean selected, boolean focus,
  32.                 int row, int column)
  33.         {
  34.             Component c = super.getTableCellRendererComponent(table, value, selected, focus, row, column);
  35.             // if you want to experiment, remove this conversion and watch what happens when you
  36.             // sort rows or rearrange columns.
  37.             int model_row = table.convertRowIndexToModel(row);
  38.             int model_col = table.convertColumnIndexToModel(column);
  39.             // you could use the passed in value but this example queries the model
  40.             // just for illustrative purposes.
  41.             if (table.getModel().getValueAt(model_row, model_col).toString().equalsIgnoreCase("yes"))
  42.                 c.setBackground(Color.GREEN);
  43.             else
  44.                 c.setBackground(table.getBackground());    
  45.             return c;
  46.         }        
  47.     }
  48.    
  49.     public SwingTest() {
  50.  
  51.         JFrame frame = new JFrame();
  52.         frame.setBounds(100, 100, 538, 441);
  53.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  54.        
  55.         JTable table = new JTable();
  56.         table.setModel(new TestModel());
  57.         table.setDefaultRenderer(Object.class, new TestRenderer()); // note: no need to pass data/model to renderer!
  58.         table.setAutoCreateRowSorter(true);
  59.  
  60.         JScrollPane pane = new JScrollPane(table);
  61.         frame.getContentPane().add(pane, BorderLayout.CENTER);
  62.        
  63.         frame.setVisible(true);
  64.        
  65.     }
  66.  
  67.     public static void main(String[] args) {
  68.         EventQueue.invokeLater(new Runnable() {
  69.             @Override public void run () {
  70.                 try {
  71.                     new SwingTest();
  72.                 } catch (Exception e) {
  73.                     e.printStackTrace();
  74.                 }
  75.             }
  76.         });
  77.     }
  78.  
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement