gpt4 book ai didi

java - 了解如何将 JButton 添加到 JTable

转载 作者:行者123 更新时间:2023-11-30 06:46:01 25 4
gpt4 key购买 nike

我正在尝试在我的 JTable 中实现一些按钮。我一直在看 this example .

我不明白的是这个构造函数:

public ButtonEditor(JCheckBox checkBox) {
super(checkBox);
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
}

JCheckBox 与什么有什么关系?任何地方都没有显示 JCheckBox,它似乎与示例也不相关。 TIA。

最佳答案

此处的 DefaultCellEditor 用法更像是使用 Button 的 hack,因为它只接受 JCheckBoxJComboBoxJTextField.

如果你真的想为JButton实现,你也可以这样做,

class ButtonEditor extends AbstractCellEditor 
implements javax.swing.table.TableCellEditor,
javax.swing.tree.TreeCellEditor

否则,您可以更新您的实现,以使用以 JButton 作为参数或默认构造函数的构造函数,

方法一

public ButtonEditor() {
super(new JCheckBox());
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
}

并且可以访问为,

table.getColumn("Button").setCellEditor(
new ButtonEditor());

方法二

public ButtonEditor(JButton button) {
super(new JCheckBox());
this.button = button;
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
}

这种方法在单元格编辑器之外也提供了更好的清晰度和按钮组件的使用,

JButton button=new JButton();
table.getColumn("Button").setCellEditor(
new ButtonEditor(button));

关于java - 了解如何将 JButton 添加到 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48114768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com