Tag: jcombobox illegalstateexception

jcombobox作为单元格编辑器java.awt.IllegalComponentStateException:必须在屏幕上显示组件以确定其位置

我使用自定义JComboBox作为JTable中的单元格编辑器。 当用户使用键盘控件进入单元格时,它会尝试打开弹出窗口。 这会导致以下错误: java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1964) at java.awt.Component.getLocationOnScreen(Component.java:1938) at javax.swing.JPopupMenu.show(JPopupMenu.java:887) at javax.swing.plaf.basic.BasicComboPopup.show(BasicComboPopup.java:191) at javax.swing.plaf.basic.BasicComboBoxUI.setPopupVisible(BasicComboBoxUI.java:859) at javax.swing.JComboBox.setPopupVisible(JComboBox.java:796) 我看过一些文章说这是一个已知的问题,解决方案是设置: comboBox.putClientProperty(“JComboBox.isTableCellEditor”, Boolean.TRUE); 但这并没有帮助。 无论如何这应该做什么? 我读过的关于这个的所有主题和文章对于问题的本质都非常模糊。 有没有人对这个问题发生的原因有什么了解? 我的combobox是非常自定义的,所以它有助于理解问题的基础,所以我可以修复代码。 这是在捕获的combobox上的焦点获取事件上触发并调用setPopupVisible(true); public void focusGained(java.awt.event.FocusEvent e) { //if focus is gained then make sure we show the popup if it is […]