レンダラは 以前作ったSampleTableCellRenderer02 を使ってます。
public class SampleJTable04Main extends JFrame {
private static final long serialVersionUID = -7554849460806351373L;
private static final String HEADER_TITLE[] = {"Column01", "Column02", "Column03", "Column04", "Column05"};
private JRadioButton radioButton = new JRadioButton("RadioButton");
private JCheckBox checkBox = new JCheckBox("CheckBox");
private JButton button = new JButton("Button");
private JComboBox<String> comboBox = new JComboBox<String>();
public static void main(String[] args) {
SampleJTable04Main sampleJTable01 = new SampleJTable04Main("SampleJTable02");
sampleJTable01.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sampleJTable01.setVisible(true);
}
SampleJTable04Main(String title){
this.setTitle(title);
this.setBounds(10, 10, 470, 120);
DefaultTableModel defaultTableModel = new DefaultTableModel(HEADER_TITLE, 5);
defaultTableModel.setValueAt(radioButton, 0, 0);
defaultTableModel.setValueAt(checkBox, 0, 1);
defaultTableModel.setValueAt(button, 0, 2);
defaultTableModel.setValueAt(comboBox, 0, 3);
defaultTableModel.setValueAt("あいうえお", 0, 4);
JTable jTable = new JTable(defaultTableModel);
JScrollPane jScrollPane = new JScrollPane(jTable);
jScrollPane.setPreferredSize(new Dimension(450, 70));
JPanel jPanel = new JPanel();
jPanel.add(jScrollPane);
this.add(jPanel, BorderLayout.CENTER);
// レンダラは以前作ったものを使用
jTable.setDefaultRenderer(Object.class, new SampleTableCellRenderer02());
}
}
実行結果
わかりやすいように1列目だけ幅を広げてます。期待する部品は配置されず、文字列となって表示されてしまいました。
期待する部品を置けるようにしたサンプルは次回・・・
いろいろ調べてますが、メンドイんですねぇ。。。
もっと簡単にできないものなんでしょうか。。。