将表字段转换为jCheckBox [复制]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将表字段转换为jCheckBox [复制]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我创建了一个与另一个类一起使用的jTable类。这里的代码:
public class Data_Table extends JFrame{
DefaultTableModel dtm;
JTable table;
JScrollPane scrollPane;
JFrame ventana;
JButton button1,button2;
JPanel pCentral,pSouth,pWindow;
public void init() {
String[] columnNames = {"CBD","abstract","final","native","private","protected","public",
"static","strictfp","synchronized","transient","volatile"};
dtm = new DefaultTableModel(columnNames,0);
table = new JTable(dtm);
scrollPane = new JScrollPane(table);
button1 = new JButton("Ok");
button2 = new JButton("Cancel");
}
public void addData(Object[] data) {
dtm.addRow(data);
}
public void createWindow() {
pCentral=new JPanel();
pCentral.add(scrollPane);
pSouth=new JPanel();
pSouth.add(button1);
pSouth.add(button2);
pWindow=new JPanel(new BorderLayout());
pWindow.add(pCentral,BorderLayout.CENTER);
pWindow.add(pSouth,BorderLayout.SOUTH);
ventana=new JFrame("");
ventana.setContentPane(pWindow);
ventana.add(scrollPane);
ventana.setSize(1000,200);
ventana.setLocationRelativeTo(null);
ventana.setVisible(true);
}
}
我想将列从abstract
转换为volatile
到jCheckBox。结果现在是这样的:
我怎样才能改变我的表格???
答案
利用表模型,特别是通过创建一个扩展javax.swing.table.AbstractTableModel
并覆盖getColumnClass()
方法的类,并指定该方法为这些特定列返回Boolean.class
。
一个开始你的好地方是http://docs.oracle.com/javase/tutorial/uiswing/components/table.html特别是Creating a Table Model上的链接
示例实现可以是:
public class MyTableModel extends AbstractTableModel {
/* Implement the various abstract methods and override any
* other methods you need to
*/
public Class<?> getColumnClass ( int columnIndex ) {
if ( (columnIndex == 1) || (columnIndex == 11 ) ) {
return Boolean.class;
}
}
}
之后,您将使用JTable
的方法将表模型应用于表格,setModel()
以上是关于将表字段转换为jCheckBox [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我有一个要转换为 ArrayList<String> 的 ArrayList<JCheckBox>