我有一个包含3列的JTable:ID,名称和操作。在最后一栏中,我为每一行都有一个按钮(我将发布一个printscreen)。当我按下按钮时,我想访问第一列中的值。我做了一个表的侦听器,当我单击表时它可以工作,但是如果单击按钮(位于第三列),它将无法获取值(我认为是因为单击不是直接在jtable中)。
按下按钮时如何获取值?
谢谢
print screen of the JTable function
我做的听众:
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(final MouseEvent e) {
if (e.getClickCount() == 1) {
final JTable jTable= (JTable)e.getSource();
final int row = table.getSelectedRow();
final int column = table.getSelectedColumn();
final int valueInCell = (Integer)table.getValueAt(row, 0);
setSelectedID(valueInCell);
System.out.println("Selecionou: "+valueInCell);
}
}
});
答案 0 :(得分:0)
除了向表中添加常规JButton
之外,您还可以添加自己的自定义JButton
;在点击时(获取ActionListener
),并且在构造时,它将以期望的行为实现data
,
data
保存在字段中。 ActionListener
。这种自定义JButton
看起来像这样:
public class DataButton<T> extends JButton implements ActionListener {
private T data;
public DataButton(T data) {
this.data = data;
addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
System.out.println("Selection: " + getData());
}
public T getData() {
return data;
}
}