Java JPopupmenut在linux/Ubuntu下不工作
我在windows下做一个项目,它工作得很好,但当我把它移到linux时,奇怪的事情开始发生了。但我不会在这篇文章中问更多的问题,让我们从根本不工作的JPopupmenu开始。 在windows下:我有一个JTable和jpopmpmenu,它应该在JTable中可见,我直接从swing添加了JPopupmenu。 以下是触发代码:Java JPopupmenut在linux/Ubuntu下不工作,java,linux,jpopupmenu,Java,Linux,Jpopupmenu,我在windows下做一个项目,它工作得很好,但当我把它移到linux时,奇怪的事情开始发生了。但我不会在这篇文章中问更多的问题,让我们从根本不工作的JPopupmenu开始。 在windows下:我有一个JTable和jpopmpmenu,它应该在JTable中可见,我直接从swing添加了JPopupmenu。 以下是触发代码: private void jTable2MouseReleased(java.awt.event.MouseEvent evt) {
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中的行大于零时,弹出菜单应该可见。它在windows下工作,但在Linux上不会发生。我错过了什么 好的,我找到了,我必须在JTableMousePressed事件中添加相同的代码,它将正常工作。好的,我找到了,我必须在JTableMousePressed事件中添加相同的代码,它将正常工作。Java中的UI依赖于操作系统。请确保在两个操作系统上使用相同的java版本。谢谢,但是没有其他选择吗?我的意思是,任何java版本都可以使用某些东西?现在,这只是一个调查问题的建议。您可以防止java版本之间的差异,比如bug修复。你的情况可能就是这样。我将重新启动windows以检查两个操作系统上的java版本,然后将返回。谢谢不幸的是这不是问题所在。两者在Java中使用openjdk版本“1.8.0_151”UI都依赖于操作系统。请确保在两个操作系统上使用相同的java版本。谢谢,但是没有其他选择吗?我的意思是,任何java版本都可以使用某些东西?现在,这只是一个调查问题的建议。您可以防止java版本之间的差异,比如bug修复。你的情况可能就是这样。我将重新启动windows以检查两个操作系统上的java版本,然后将返回。谢谢不幸的是这不是问题所在。两者都使用openjdk版本“1.8.0_151”