Javaを用いてシステムを作成中です。
その中で、JTableにJCheckBoxを埋め込もうとしている時に疑問点があったので質問させて頂きたいです。
現在、このようにJCheckBoxを埋め込もうとすると、図のように「class.java.lang.Boolean」と表示されてしまいます。
コードでは「Boolean.class」と指定してセルに値を入れています。
正常にJCheckBoxがJTableの中に表示されない理由を、分かりやすく教えてもらえませんか?
ーーーーーーーーーーーーーーーーーーーーーーー追記------------------------
情報の追加が遅くなり、申し訳ありません。
現在使用しているコードを抜粋してSampleコードを作成したので、至らない点がありましたらお願いします。
【コード】
package view;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
public class Sample extends JFrame {
private DefaultTableModel tableModel; private JScrollPane scrollPane; private JTable table; String[] name = {"フラグ"}; public Sample() { //タイトル等 setTitle("Sample"); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(null); //今後、属性を複数増やすためにScrollPane実装 scrollPane = new JScrollPane(); scrollPane.setBounds(20, 170, 150, 80); add(scrollPane); //例として属性追加 String[] columnNames = {"フラグ"}; Object[] temp = {Boolean.class}; tableModel = new DefaultTableModel(columnNames, 0); table = new JTable(tableModel); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); DefaultTableColumnModel columnModel = (DefaultTableColumnModel)table.getColumnModel(); TableColumn column0 = columnModel.getColumn(0); DefaultTableCellRenderer alignCenter = new DefaultTableCellRenderer(); alignCenter.setHorizontalAlignment(SwingConstants.CENTER); //セルの大きさ column0.setPreferredWidth(150); //行の追加 tableModel.addRow(temp); scrollPane.setViewportView(table); //可視化 setVisible(true); } public static void main(String[] args) { //Sampleの実行 new Sample(); }
}
回答1件
あなたの回答
tips
プレビュー