【发布时间】:2017-11-07 16:16:20
【问题描述】:
这是我第一次使用 JTable,我遇到了问题。 我一直在用这样的主要方法测试我的 JTable:
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame(APP_TITLE);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FileManager fileManager = new FileManager();
f.setContentPane(fileManager);
f.setIconImage(Icons.SOFTWARE_ICON.getImage());
f.pack();
f.setLocationByPlatform(true);
f.setMinimumSize(f.getSize());
f.setVisible(true);
}
});
}
一切都很完美。我可以按快捷键(UP、DOWN 和 CTRL+A),它们都可以工作。
但现在我已经像这样将 FileManager (JPanel) 添加到我的 UI (JFrame) 中:
public FileManager fMan = new FileManager();
[...]
JSplitPane splitPane = new JSplitPane();
splitPane.setLeftComponent(fMan);
现在,我注意到两件事:
快捷方式不起作用
选择时颜色不会自动反转
我尝试请求焦点,改变主题,但都没有帮助。 ????
【问题讨论】:
-
尝试找到焦点所在的位置。它显然不在桌面上,你认为它就在那里。
-
getMostRecentFocusOwner().getClass() 返回 javax.swing.JTable
-
运行应用程序。检查焦点。使用制表键
-
在 Windows 7 上使用 JDK8 对我来说效果很好。发布您的 minimal reproducible example 来证明问题。请注意使用基本表进行的第一次测试:
splitPane.setLeftComponent( new JScrollPane( new JTable(3,5) ) );。一旦你得到这个工作,然后尝试你的自定义表。这样你就会知道问题是你的表还是JDK表。 -
好的,我按照你说的做了,还是不行,我会尽快发个例子
标签: java swing jtable shortcut