我有一个JTable,有一列是文本,不可编辑,第二列是一个显示布尔值的复选框....现在我想要的是,当用户选择多行并取消选中任何一行时选中复选框,然后选中下面的所有复选框都应取消选中,反之亦然.
我正在尝试创建一个从数据库中获取数据的动态表,并将这些数据添加到单独的行中.我想为每行(动态)添加一个额外的单元格,其中包含两个按钮...并且在单击这些按钮时会发生一些事件应该只在相应的行上发生 ..
(PS:我已经设法从数据库中获取数据并将其添加到表中虽然..)
这是一个例子:
_____________________________________________________________
ID | Name | Application for leave | Accept/Reject |
--------------------------------------------------------------
1 |AD | xxxxxxxxxxxxxxxxxx |AcceptButton RejectButton|
2 |SD | xxxxxxxxxxxxxxxxxx |AcceptButton RejectButton|
3 |PD | xxxxxxxxxxxxxxxxxx |AcceptButton RejectButton|
4 |DD | xxxxxxxxxxxxxxxxxx |AcceptButton RejectButton|
5 |MD | xxxxxxxxxxxxxxxxxx |AcceptButton RejectButton|
--------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
AcceptButton和RejectButton应该在运行时期间随每行动态添加.如果我按下AcceptButton或RejectButton,该行应自动删除,并且数据库中具有相应ID的行应该更新.
我已经为JTable使用渲染器和编辑器添加了单选按钮.我也创建了同样的组.我无法使用此原则实现排他性(只应选择1个单选按钮).请参阅下面的代码并感谢您的回复.
渲染器和编辑器类:
class RadioButtonRenderer implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (value == null)
return null;
return (Component) value;
}
}
class RadioButtonEditor extends DefaultCellEditor implements ItemListener {
private JRadioButton button;
public RadioButtonEditor(JCheckBox checkBox) {
super(checkBox);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
if (value == null)
return null;
button = (JRadioButton) value;
button.addItemListener(this);
return (Component) value;
}
public …Run Code Online (Sandbox Code Playgroud) 我想要一个JTable由2列(有RadioButton)活动和非活动组成的组合,这样如果活动列是非Selected活动的RadioButton获取Unselected而反之亦然意味着在单行中只能从2个radiobutton中选择1个radiobutton.radiobutton的代码如下.我无法为这2列添加buttongroup.
public class NewJFrame extends javax.swing.JFrame {
DefaultTableModel dt;
public JRadioButton radioButton=new JRadioButton();
public class RadioButtonCellEditorRenderer extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, ActionListener {
public RadioButtonCellEditorRenderer() {
radioButton.addActionListener(this);
radioButton.setOpaque(false);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
radioButton.setSelected(Boolean.TRUE.equals(value));
return radioButton;
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
radioButton.setSelected(Boolean.TRUE.equals(value));
return radioButton;
}
@Override
public void actionPerformed(ActionEvent e) …Run Code Online (Sandbox Code Playgroud) 我想补充jRadioButton到jTable.我用了给定的代码
private class CustomCellRenderer extends DefaultTableCellRenderer {
/* (non-Javadoc)
* @see javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
*/
@Override
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
return new javax.swing.JRadioButton();
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个时,我会得到jTable一个不同颜色的列,当我点击单选按钮时没有任何反应.我正在使用netbeans.如果我尝试自定义,jTable则不会出现任何内容jTable.给我一个适当的指导.