Guest User

Untitled

a guest
Oct 20th, 2012
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Component;
  3.  
  4. import javax.swing.JFrame;
  5. import javax.swing.JScrollPane;
  6. import javax.swing.JTable;
  7. import javax.swing.table.AbstractTableModel;
  8. import javax.swing.table.DefaultTableCellRenderer;
  9. import javax.swing.table.TableCellRenderer;
  10. import javax.swing.table.TableModel;
  11.  
  12.  
  13. public class App {
  14.  
  15.     public static class BGCellRenderer extends DefaultTableCellRenderer {
  16.         private Color bgcolor;
  17.  
  18.         public BGCellRenderer(Color bgcolor) {
  19.             this.bgcolor = bgcolor;
  20.         }
  21.  
  22.         @Override
  23.         public Component getTableCellRendererComponent(JTable table,
  24.                 Object obj, boolean isSelected, boolean hasFocus, int row,
  25.                 int col) {
  26.             Component comp = super.getTableCellRendererComponent(table, obj,
  27.                     isSelected, hasFocus, row, col);
  28.             if (!isSelected) {
  29.                 if (obj instanceof EmptyCell) {
  30.                     comp.setBackground(bgcolor);
  31.                 } else {
  32.                     comp.setBackground(Color.WHITE);
  33.                 }
  34.             }
  35.             return comp;
  36.         }
  37.     }
  38.  
  39.     public static class Cell {  }
  40.  
  41.     public static class EmptyCell extends Cell {
  42.     }
  43.  
  44.     public static class RealCell extends Cell {
  45.     }
  46.  
  47.     public static class MyModel extends AbstractTableModel {
  48.         private Cell[][] data;
  49.         private int width;
  50.         private int height;
  51.  
  52.         public MyModel(int width, int height) {
  53.             this.width = width;
  54.             this.height = height;
  55.             data = new Cell[width][height];
  56.             for (int i = 0; i < width; i++) {
  57.                 for (int j = 0; j < height; j++) {
  58.                     if (i == j) {
  59.                         data[i][j] = new EmptyCell();
  60.                     } else {
  61.                         data[i][j] = new RealCell();
  62.                     }
  63.                 }
  64.             }
  65.         }
  66.  
  67.         @Override
  68.         public int getColumnCount() {
  69.             return height;
  70.         }
  71.  
  72.         @Override
  73.         public int getRowCount() {
  74.             return width;
  75.         }
  76.  
  77.         @Override
  78.         public Object getValueAt(int i, int j) {
  79.             return data[i][j];
  80.         }
  81.  
  82.     }
  83.  
  84.     public static void main(String[] args) {
  85.  
  86.         TableModel model = new MyModel(5, 10);
  87.         final BGCellRenderer bgrenderer = new BGCellRenderer(Color.GREEN);
  88.         JTable table = new JTable(model) {
  89.             public TableCellRenderer getCellRenderer(int row, int column) {
  90.                 return bgrenderer;
  91.             }
  92.         };
  93.  
  94.         JFrame f = new JFrame("rejtvény");
  95.         f.getContentPane().add(new JScrollPane(table));
  96.         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  97.         f.setSize(600, 400);
  98.         f.setVisible(true);
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment