100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Java Swing 开发之JTable中在添加组件(JCheckBox)

Java Swing 开发之JTable中在添加组件(JCheckBox)

时间:2022-10-11 22:50:58

相关推荐

Java Swing 开发之JTable中在添加组件(JCheckBox)

独角兽企业重金招聘Python工程师标准>>>

首先是创建表格

JTable demoTable= new JTable(); DefaultTableModel dtmDemo = (DefaultTableModel) demoTable.getModel();String[] tableHeads = { "序号","id","jCheckBox"};dtmDemo.setColumnIdentifiers(tableHeads);

//这里的2指的是第几列,从0开始计数

demoTable.getColumnModel().getColumn(2).setCellEditor(new CheckBoxCellEditor());demoTable.getColumnModel().getColumn(2).setCellRenderer(new CWCheckBoxRenderer());

//JTable中的数据

for(int i=0;i<10;i++){Object[] objdata = { i,2,new Boolean(false)/**这里就那个JCheckBox位置*/};dtmDemo.addRow(objdata);}

将下面的类容复制粘贴到你正在想加组件的类下面

//~ Inner Classes ----------------------------------------------------------------------------------------------------class CheckBoxCellEditor extends AbstractCellEditor implements TableCellEditor {//~ Static fields/initializers -------------------------------------------------------------------------------------private static final long serialVersionUID = 1L;//~ Instance fields ------------------------------------------------------------------------------------------------protected JCheckBox checkBox;//~ Constructors ---------------------------------------------------------------------------------------------------public CheckBoxCellEditor() {checkBox = new JCheckBox();checkBox.setHorizontalAlignment(SwingConstants.CENTER);// checkBox.setBackground( Color.white);}//~ Methods --------------------------------------------------------------------------------------------------------@Override public Object getCellEditorValue() {return Boolean.valueOf(checkBox.isSelected());}//~ ----------------------------------------------------------------------------------------------------------------@Override public Component getTableCellEditorComponent(JTable table,Object value,boolean isSelected,introw,intcolumn) {checkBox.setSelected(((Boolean) value).booleanValue());return checkBox;}} // end class CheckBoxCellEditorclass CWCheckBoxRenderer extends JCheckBox implements TableCellRenderer {//~ Static fields/initializers -------------------------------------------------------------------------------------private static final long serialVersionUID = 1L;//~ Instance fields ------------------------------------------------------------------------------------------------Border border = new EmptyBorder(1, 2, 1, 2);//~ Constructors ---------------------------------------------------------------------------------------------------public CWCheckBoxRenderer() {super();setOpaque(true);setHorizontalAlignment(SwingConstants.CENTER);}//~ Methods --------------------------------------------------------------------------------------------------------@Override public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,introw,intcolumn) {if (value instanceof Boolean) {setSelected(((Boolean) value).booleanValue());// setEnabled(table.isCellEditable(row, column));setForeground(table.getForeground());setBackground(table.getBackground());}return this;}} // end class CWCheckBoxRenderer

最后效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。