//Sample1b.java import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingConstants; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableColumn; public class Sample1b { private static final String window_title = "ちょっと編集してテーブル表示"; private static final int locate_X = 50; private static final int locate_Y = 50; private static final int window_width = 320; private static final int window_height = 160; private static final int table_width = 300; private static final int table_height = 120; private static final int table_row_height = 20; // データ Object[] colNames = { "名前", "数", "サイズ", "色", "判断基準" }; Object[][] rowData = { { "A01", "20", "大", "白", "柔らかさ" }, { "K01", "5", "細", "赤", "強度" }, { "U01", "100", "中", "黄", "安価" }, { "S01", "2.5", "中", "緑", "上質" }, }; // 主処理 public static void main(final String args[]) { final Sample1b sample = new Sample1b(); } // コンストラクタ public Sample1b() { final JFrame f = new JFrame(Sample1b.window_title); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JTable t = new JTable(this.rowData, this.colNames); t.setRowHeight(Sample1b.table_row_height); t.setGridColor(Color.gray); for (int i = 0; i < t.getColumnCount(); ++i) { final TableColumn tc = t.getColumn(t.getColumnName(i)); tc.setCellRenderer(new MyRenderer()); } final JScrollPane sp = new JScrollPane(); sp.getViewport().setView(t); sp.setPreferredSize(new Dimension(Sample1b.table_width, Sample1b.table_height)); final JPanel p = new JPanel(); p.add(sp); f.getContentPane().add(p, BorderLayout.CENTER); f.setBounds(Sample1b.locate_X, Sample1b.locate_Y, Sample1b.window_width, Sample1b.window_height); f.setVisible(true); } // セルレンダラ class MyRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = 1L; @Override public Component getTableCellRendererComponent(final JTable table, final Object value, final boolean isSelected, final boolean hasFocus, final int row, final int column) { switch (column) { case 1: this.setHorizontalAlignment(SwingConstants.RIGHT); break; case 2: this.setHorizontalAlignment(SwingConstants.CENTER); break; case 3: this.setHorizontalAlignment(SwingConstants.CENTER); switch (row) { case 0: this.setBackground(Color.black); this.setForeground(Color.white); break; default: this.setBackground(Color.yellow); this.setForeground(Color.red); break; } default: break; } return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); } } }