- - PR -
JTableのセルの編集
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-07-13 15:16
以下のソースではうまくいっているので参考にしてみてください。
--- TestTableRenderer.java import java.awt.*; import javax.swing.*; import javax.swing.table.*; /** 左が普通のセル・レンダラー、右が自作のセル・レンダラー */ public class TestTableRenderer extends JTable { TestTableRenderer() { super(new Object[][] { new Object[] { "Item1-1", "Item1-2" }, new Object[] { "Item2-1", "Item2-2" }, new Object[] { "Item3-1", "Item3-2" }}, new Object[] { "DefaultTableCellRenderer", "TestCellRenderer"}); } TableCellRenderer renderer = new TestCellRenderer(); public TableCellRenderer getCellRenderer(int row, int column) { if (column == 0) return getDefaultRenderer(String.class); return renderer; } class TestCellRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (isSelected) { c.setBackground(Color.yellow); // 選択時は黄色 } else { c.setBackground(Color.white); // 非選択時は白 } return c; } } public static void main(String[] args) { JFrame frame = new JFrame(); JTable table = new TestTableRenderer(); frame.getContentPane().add(new JScrollPane(table)); frame.setSize(640, 480); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } |
|
投稿日時: 2004-07-15 09:14
a-sanありがとうございました。
そのとおりにしたら無事解決できました。 |
|
投稿日時: 2004-07-29 12:29
JTableを拡張してセルのマージを行っているプログラムを見つけました。
よければ参考にしてください。 http://www.cutt.co.jp/book/4-87783-053-7.html |
