JPopupmenut 在 linux / Ubuntu 下不工作
JPopupmenut not working under linux / Ubuntu
我在 windows 下做一个项目,它工作得很好,但是当我把它移到 linux 时,奇怪的事情开始发生了。但在这个问题中我不会问超过一个问题,让我们从 JPopupmenu 根本不工作开始。
在 windows 下:我有一个 JTable 和 JPopupmenu,它们应该在 JTable 中可见,我直接从 swing 添加了 JPopupmenu。
这是触发代码:
private void jTable2MouseReleased(java.awt.event.MouseEvent evt) {
if (evt.isPopupTrigger()) {
int rows = jTable2.getRowCount();
if(rows>0){
JTable source = (JTable) evt.getSource();
int row = source.rowAtPoint(evt.getPoint());
int column = source.columnAtPoint(evt.getPoint());
if (!source.isRowSelected(row)) {
source.changeSelection(row, column, false, false);
}
jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
}
如代码所示:当 JTable 中的行大于零时,Popupmenu 应该可见。它在 windows 下工作,但在 Linux 上发生。我在这里错过了什么?
好的,我找到了,我必须在 JTableMousePressed 事件中添加相同的代码,它就会正常工作。
我在 windows 下做一个项目,它工作得很好,但是当我把它移到 linux 时,奇怪的事情开始发生了。但在这个问题中我不会问超过一个问题,让我们从 JPopupmenu 根本不工作开始。 在 windows 下:我有一个 JTable 和 JPopupmenu,它们应该在 JTable 中可见,我直接从 swing 添加了 JPopupmenu。 这是触发代码:
private void jTable2MouseReleased(java.awt.event.MouseEvent evt) {
if (evt.isPopupTrigger()) {
int rows = jTable2.getRowCount();
if(rows>0){
JTable source = (JTable) evt.getSource();
int row = source.rowAtPoint(evt.getPoint());
int column = source.columnAtPoint(evt.getPoint());
if (!source.isRowSelected(row)) {
source.changeSelection(row, column, false, false);
}
jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
}
如代码所示:当 JTable 中的行大于零时,Popupmenu 应该可见。它在 windows 下工作,但在 Linux 上发生。我在这里错过了什么?
好的,我找到了,我必须在 JTableMousePressed 事件中添加相同的代码,它就会正常工作。