检测 JTable 单元格是否已被双击并因此切换到编辑模式所需的侦听器是什么?
What is the listener needed to detect if a JTable cell has been double clicked, and therefore switched to editing mode?
当您在 Swing 中双击一个可编辑的 JTable 单元格时,该单元格会变成一种 'editing mode,' 插入符号出现在其中,并且单元格周围出现一个轮廓。我的问题是,我需要使用什么侦听器来检测这种进入编辑模式的变化?
明确地说,我不是在寻找检测单元格值何时更改的侦听器,也不是在寻找双击侦听器,而是在可编辑时初始切换到编辑模式双击单元格。
所以,再一次,这个变化的监听器叫什么?是否存在,或者我是否需要修改其他监听器?
谢谢,
您需要将鼠标侦听器添加到 table 对象。在 mousePressed() 方法中检查点击次数是 2.This 应该可以解决您的问题
yourTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
JTable table =(JTable) e.getSource();
Point p = e.getPoint();
int row = table.rowAtPoint(p);
if (e.getClickCount() == 2) {
}
}
});
您可以使用 MouseClick 事件并查看发生了多少次点击。
示例代码
jtable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
JTable table =(JTable) me.getSource();
if (me.getClickCount() == 2) {
int row = target.getSelectedRow();
int column = target.getSelectedColumn();
// add your logic here based on which row and column
}
}
});
这可能会有帮助。更多详情 click here
最好的方法是监听 属性 "tableCellEditor"。所以你可以很容易地得到activated/deactivated.
的编辑器
table.addPropertyChangeListener("tableCellEditor", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getNewValue() == null) {
// editing stopped
} else {
// editing started
}
}
};
当您在 Swing 中双击一个可编辑的 JTable 单元格时,该单元格会变成一种 'editing mode,' 插入符号出现在其中,并且单元格周围出现一个轮廓。我的问题是,我需要使用什么侦听器来检测这种进入编辑模式的变化?
明确地说,我不是在寻找检测单元格值何时更改的侦听器,也不是在寻找双击侦听器,而是在可编辑时初始切换到编辑模式双击单元格。
所以,再一次,这个变化的监听器叫什么?是否存在,或者我是否需要修改其他监听器?
谢谢,
您需要将鼠标侦听器添加到 table 对象。在 mousePressed() 方法中检查点击次数是 2.This 应该可以解决您的问题
yourTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
JTable table =(JTable) e.getSource();
Point p = e.getPoint();
int row = table.rowAtPoint(p);
if (e.getClickCount() == 2) {
}
}
});
您可以使用 MouseClick 事件并查看发生了多少次点击。
示例代码
jtable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
JTable table =(JTable) me.getSource();
if (me.getClickCount() == 2) {
int row = target.getSelectedRow();
int column = target.getSelectedColumn();
// add your logic here based on which row and column
}
}
});
这可能会有帮助。更多详情 click here
最好的方法是监听 属性 "tableCellEditor"。所以你可以很容易地得到activated/deactivated.
的编辑器table.addPropertyChangeListener("tableCellEditor", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getNewValue() == null) {
// editing stopped
} else {
// editing started
}
}
};