关于JTable 中放入 JCheckBox, 并且设置其编辑属性的问题?在线等待 在一个 JTable 中放入 JCheckBox, 并且其中一行什么都不放,为空行上面我已经做到了.现在的问题是:上面任何行的 JCheckBox 只要有一个选择上,那另外的就自动为不选状态, 这是为什么啊.项目紧急,分不够再加,请高手指点!!!在线等待 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计是你setValue时根本没保存数据,或者根本就没有实现setValue。最好代码贴出来,大家分析一下。 public class EditTableTest extends JDialog{ private final String[] title = { "", "module", "Clause ID", "Clause Name" }; protected JTable table; private DefaultTableModel model; public EditTableTest() { super(new Frame(), "Table", true); initComponents(); } public void initComponents() { JScrollPane scrollPane = new JScrollPane(); table = new JTable(); model = new DefaultTableModel(); table.setModel(model); scrollPane.setViewportView(table); for (int c = 0; c < title.length; ++c) { model.addColumn(title[c]); } initData(); table.getColumnModel().getColumn(0).setCellRenderer(new CellRenderer()); getContentPane().add(scrollPane, java.awt.BorderLayout.CENTER); setSize(500, 400); setPosition(); } public void initData() { for (int i=0; i<10; i++){ if (i == 6){ model.addRow(new Object[] { null, "", "", ""}); continue; } model.addRow(new Object[] {Boolean.TRUE, "clause Name", "clause ID", "clause"}); } } public static void main(String args[]) { new EditTableTest().show(); } class CellRenderer extends TableCellRendererCheckBox { public Component getTableCellRendererComponent( JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column); if (row == 6 && column == 0) return new JLabel(); if(isSelected){ setForeground(table.getSelectionForeground()); setBackground(table.getSelectionBackground()); setSelected(true); }else{ setForeground(table.getForeground()); setBackground(table.getBackground()); setSelected(false); } return this; } }}////////////////////////////public class TableCellRendererCheckBox extends JCheckBox implements TableCellRenderer { /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox() { super(); } /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox(Icon arg0) { super(arg0); } /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox(Icon arg0, boolean arg1) { super(arg0, arg1); } /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox(String arg0) { super(arg0); } /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox(Action arg0) { super(arg0); } /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox(String arg0, boolean arg1) { super(arg0, arg1); } /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox(String arg0, Icon arg1) { super(arg0, arg1); } /** * Constructor for CheckBoxTableCellRender */ public TableCellRendererCheckBox(String arg0, Icon arg1, boolean arg2) { super(arg0, arg1, arg2); }为什么只要有一个选择上,那另外的就自动为不选状态 你没有设置celleditor而且没有在tablemodel的setvalue中实现修改值 2个int 整除并求余 有没有一个高效算法。 用JAVA如何读取系统服务的状态 由Class.forName()抛出异常而引出的一个常识问题 请问一下怎么样用JAVA播放声音呢 求swt学习资料 菜鸟提问 在tomcat4.04下,怎么连接到oracal数据库,要用什么驱动? ■■投诉Java版主,您是MS的枪手,删除Java贴子,想要我们学.net吗?大家同意的,每人发贴子,一起UP,一起投诉!!! 稚嫩小问题。。。 求助如何利用 Applet 调用声音 急急急!关于table 低版本的Solaris上运行java的问题
private final String[] title = { "", "module", "Clause ID", "Clause Name" };
protected JTable table;
private DefaultTableModel model; public EditTableTest() { super(new Frame(), "Table", true); initComponents();
}
public void initComponents()
{
JScrollPane scrollPane = new JScrollPane();
table = new JTable();
model = new DefaultTableModel();
table.setModel(model);
scrollPane.setViewportView(table);
for (int c = 0; c < title.length; ++c) {
model.addColumn(title[c]);
}
initData();
table.getColumnModel().getColumn(0).setCellRenderer(new CellRenderer()); getContentPane().add(scrollPane, java.awt.BorderLayout.CENTER); setSize(500, 400); setPosition();
}
public void initData()
{
for (int i=0; i<10; i++){
if (i == 6){
model.addRow(new Object[] { null, "", "", ""});
continue;
}
model.addRow(new Object[] {Boolean.TRUE, "clause Name", "clause ID", "clause"});
}
}
public static void main(String args[]) {
new EditTableTest().show();
}
class CellRenderer extends TableCellRendererCheckBox {
public Component getTableCellRendererComponent(
JTable table,
Object obj,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column);
if (row == 6 && column == 0)
return new JLabel();
if(isSelected){
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
setSelected(true);
}else{
setForeground(table.getForeground());
setBackground(table.getBackground());
setSelected(false);
}
return this;
}
}
}
////////////////////////////
public class TableCellRendererCheckBox
extends JCheckBox
implements TableCellRenderer { /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox() {
super();
} /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox(Icon arg0) {
super(arg0);
} /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox(Icon arg0, boolean arg1) {
super(arg0, arg1);
} /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox(String arg0) {
super(arg0);
} /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox(Action arg0) {
super(arg0);
} /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox(String arg0, boolean arg1) {
super(arg0, arg1);
} /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox(String arg0, Icon arg1) {
super(arg0, arg1);
} /**
* Constructor for CheckBoxTableCellRender
*/
public TableCellRendererCheckBox(String arg0, Icon arg1, boolean arg2) {
super(arg0, arg1, arg2);
}为什么只要有一个选择上,那另外的就自动为不选状态