Advertisement
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
Advertisement