如何将复选框添加到 JTABLE Swing [英] How to add checkboxes to JTABLE swing
问题描述
有谁知道如何将 JCheckBox
放在 JTable
列中?像这样:
我从如何使用表格 >
提前致谢.
1) JTable 知道 JCheckbox-in Boolean TableCellRenderers 和 TableCellEditor 默认情况下,然后有声明一些事情会适得其反,
2) AbstractTableModel 应该很有用,其中在JTable
中需要减少/限制/改变嵌套和继承方法,默认实现在DefaultTableModel
,
3) 考虑使用 DefaultTableModel
,(如果您不确定如何工作)而不是 AbstractTableModel
,
可以从简单的代码生成:
import javax.swing.*;导入 javax.swing.table.*;公共类 TableCheckBox 扩展 JFrame {private static final long serialVersionUID = 1L;私有 JTable 表;公共表检查框(){Object[] columnNames = {"Type", "Company", "Shares", "Price", "Boolean"};对象[][] 数据 = {{购买",IBM",新整数(1000),新双(80.50),假},{卖",微软",新整数(2000),新双(6.25),真},{卖",苹果",新整数(3000),新双(7.35),真},{"Buy", "Nortel", new Integer(4000), new Double(20.00), false}};DefaultTableModel 模型 = 新的 DefaultTableModel(data, columnNames);表 = 新 JTable(模型){private static final long serialVersionUID = 1L;/*@覆盖公共类 getColumnClass(int column) {返回 getValueAt(0, column).getClass();}*/@覆盖公共类 getColumnClass(int column) {开关(列){案例0:返回 String.class;情况1:返回 String.class;案例2:返回整数类;案例3:返回 Double.class;默认:返回 Boolean.class;}}};table.setPreferredScrollableViewportSize(table.getPreferredSize());JScrollPane scrollPane = new JScrollPane(table);getContentPane().add(scrollPane);}公共静态无效主(字符串 [] args){SwingUtilities.invokeLater(new Runnable() {@覆盖公共无效运行(){TableCheckBox 框架 = new TableCheckBox();frame.setDefaultCloseOperation(EXIT_ON_CLOSE);框架.pack();frame.setLocation(150, 150);frame.setVisible(true);}});}}
Does anyone know how to put a JCheckBox
in a JTable
column? Something like this:
I took this from How To use Tables
Thanks in advance.
1) JTable knows JCheckbox with built-in Boolean TableCellRenderers and TableCellEditor by default, then there is contraproductive declare something about that,
2) AbstractTableModel should be useful, where is in the JTable
required to reduce/restrict/change nested and inherits methods by default implemented in the DefaultTableModel
,
3) consider using DefaultTableModel
, (if you are not sure about how to works) instead of AbstractTableModel
,
could be generated from simple code:
import javax.swing.*;
import javax.swing.table.*;
public class TableCheckBox extends JFrame {
private static final long serialVersionUID = 1L;
private JTable table;
public TableCheckBox() {
Object[] columnNames = {"Type", "Company", "Shares", "Price", "Boolean"};
Object[][] data = {
{"Buy", "IBM", new Integer(1000), new Double(80.50), false},
{"Sell", "MicroSoft", new Integer(2000), new Double(6.25), true},
{"Sell", "Apple", new Integer(3000), new Double(7.35), true},
{"Buy", "Nortel", new Integer(4000), new Double(20.00), false}
};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
table = new JTable(model) {
private static final long serialVersionUID = 1L;
/*@Override
public Class getColumnClass(int column) {
return getValueAt(0, column).getClass();
}*/
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return String.class;
case 1:
return String.class;
case 2:
return Integer.class;
case 3:
return Double.class;
default:
return Boolean.class;
}
}
};
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TableCheckBox frame = new TableCheckBox();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setLocation(150, 150);
frame.setVisible(true);
}
});
}
}
这篇关于如何将复选框添加到 JTABLE Swing的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!