Swing 在对话框中将JTable添加到我的窗格时,在打包时会抛出NPE
我已经创建了一个Swing 在对话框中将JTable添加到我的窗格时,在打包时会抛出NPE,swing,jtable,jdialog,jtabbedpane,formpanel,Swing,Jtable,Jdialog,Jtabbedpane,Formpanel,我已经创建了一个JDialog。当它出现时,我有一个JTabbedPane,上面有几个FormPanels。表单面板作为表单文件加载(我用来创建表单)。在我尝试向其中一个表单添加JTable之前,我没有遇到任何问题(同样,通过Abeille)。我添加表单就像添加其他选项卡一样,但当我运行dialog.pack时,它会抛出NullPointerException。该表单中的表似乎不是null,因为我可以从中获取值。我看不出是什么导致null private JDialog m_dialog; pr
JDialog
。当它出现时,我有一个JTabbedPane
,上面有几个FormPanel
s。表单面板作为表单文件加载(我用来创建表单)。在我尝试向其中一个表单添加JTable
之前,我没有遇到任何问题(同样,通过Abeille)。我添加表单就像添加其他选项卡一样,但当我运行dialog.pack
时,它会抛出NullPointerException
。该表单中的表似乎不是null
,因为我可以从中获取值。我看不出是什么导致null
private JDialog m_dialog;
private FormPanel m_panelForm;
private FormPanel m_tableEditorForm;
private FormPanel m_fieldEditorForm;
private FormPanel m_seedDataEditorForm;
JFrame appFrame = App.getInstance().getFrame();
m_dialog = new JDialog(appFrame, "Dialog Title"), true);
m_dialog.setName("Dialog"));
m_dialog.setLocationRelativeTo(appFrame);
// Load dialog layout
m_panelForm = getFormPanel("DLG_EDIT_PANEL");
m_tableEditorForm = getFormPanel("DLG_TABLE_EDITOR");
m_fieldEditorForm = getFormPanel("DLG_FIELD_EDITOR");
m_seedDataEditorForm = getFormPanel("DLG_SEED_DATA_EDITOR");
JTabbedPane pane = m_panelForm.getTabbedPane("editPane");
//Set up the tabs
pane.insertTab("Table", null, m_tableEditorForm, null, 0);
pane.insertTab("Field", null, m_fieldEditorForm, null, 1);
pane.insertTab("Seed", null, m_seedDataEditorForm, null, 2);
m_panelForm.reset();
m_dialog.setContentPane(m_panelForm);
m_dialog.pack();
第三个插入,称为“种子”的插入,是将其吹出的插入;如果我把这行注释掉,其他选项卡就会显示得很好。类似地,如果我从Abeille中的表单中删除JTable
,则选项卡显示良好
请注意,columnCount
和rowCount
默认为2。还请注意,如果我关闭了pack,则JDialog
的setVisible
会抛出相同的错误
任何帮助都将不胜感激;我荡秋千还行,但还远远不够
堆栈跟踪:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.jeta.open.support.DefaultComponentFinder.unregisterComponent(Unknown Source)
at com.jeta.open.support.DefaultComponentFinder.componentRemoved(Unknown Source)
at java.awt.AWTEventMulticaster.componentRemoved(AWTEventMulticaster.java:193)
at java.awt.Container.processContainerEvent(Container.java:2070)
at java.awt.Container.processEvent(Container.java:2038)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.Container.remove(Container.java:1162)
at java.awt.Container.remove(Container.java:1198)
at java.awt.Container.addImpl(Container.java:1046)
at java.awt.Container.add(Container.java:927)
at javax.swing.plaf.basic.BasicScrollPaneUI.updateColumnHeader(BasicScrollPaneUI.java:606)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.scrollPanePropertyChange(BasicScrollPaneUI.java:1102)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.propertyChange(BasicScrollPaneUI.java:1079)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
at java.awt.Component.firePropertyChange(Component.java:8154)
at javax.swing.JScrollPane.setColumnHeader(JScrollPane.java:1095)
at javax.swing.JScrollPane.setColumnHeaderView(JScrollPane.java:1120)
at javax.swing.JTable.configureEnclosingScrollPane(JTable.java:713)
at javax.swing.JTable.addNotify(JTable.java:684)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at java.awt.Container.addNotify(Container.java:2578)
at javax.swing.JComponent.addNotify(JComponent.java:4685)
at javax.swing.JRootPane.addNotify(JRootPane.java:739)
at java.awt.Container.addNotify(Container.java:2578)
at java.awt.Window.addNotify(Window.java:663)
at java.awt.Dialog.addNotify(Dialog.java:743)
at java.awt.Window.pack(Window.java:704)
at com.follett.fsc.core.utils.schema.workbench.gui.dialogs.EditTableDialog.showDialog(EditTableDialog.java:108)
at com.follett.fsc.core.utils.schema.workbench.gui.components.Tab.doEditTableRow(Tab.java:1354)
at com.follett.fsc.core.utils.schema.workbench.gui.components.Tab.doEditRow(Tab.java:1437)
at com.follett.fsc.core.utils.schema.workbench.gui.components.Tab$17$1.run(Tab.java:1016)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
线程“AWT-EventQueue-0”java.lang.NullPointerException中出现异常
位于com.jeta.open.support.DefaultComponentFinder.unregisterComponent(未知源)
位于com.jeta.open.support.DefaultComponentFinder.componentRemoved(未知源)
在java.awt.AWTEventMulticaster.componentRemoved处(AWTEventMulticaster.java:193)
位于java.awt.Container.processContainerEvent(Container.java:2070)
位于java.awt.Container.processEvent(Container.java:2038)
位于java.awt.Component.dispatchEventImpl(Component.java:4652)
位于java.awt.Container.dispatchEventImpl(Container.java:2099)
位于java.awt.Component.dispatchEvent(Component.java:4482)
在java.awt.Container.remove处(Container.java:1162)
位于java.awt.Container.remove(Container.java:1198)
位于java.awt.Container.addImpl(Container.java:1046)
在java.awt.Container.add处(Container.java:927)
位于javax.swing.plaf.basic.BasicScrollPaneUI.updateColumnHeader(BasicScrollPaneUI.java:606)
位于javax.swing.plaf.basic.BasicScrollPaneUI$Handler.scrollPanePropertyChange(BasicScrollPaneUI.java:1102)
位于javax.swing.plaf.basic.BasicScrollPaneUI$Handler.propertyChange(BasicScrollPaneUI.java:1079)
位于java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
位于java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
位于java.awt.Component.firePropertyChange(Component.java:8154)
位于javax.swing.JScrollPane.setColumnHeader(JScrollPane.java:1095)
位于javax.swing.JScrollPane.setColumnHeaderView(JScrollPane.java:1120)
位于javax.swing.JTable.configureEnclosuringScrollPane(JTable.java:713)
位于javax.swing.JTable.addNotify(JTable.java:684)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于java.awt.Container.addNotify(Container.java:2578)
位于javax.swing.JComponent.addNotify(JComponent.java:4685)
位于javax.swing.JRootPane.addNotify(JRootPane.java:739)
位于java.awt.Container.addNotify(Container.java:2578)
位于java.awt.Window.addNotify(Window.java:663)
位于java.awt.Dialog.addNotify(Dialog.java:743)
位于java.awt.Window.pack(Window.java:704)
位于com.follett.fsc.core.utils.schema.workbench.gui.dialogs.EditTableDialog.showDialog(EditTableDialog.java:108)
位于com.follett.fsc.core.utils.schema.workbench.gui.components.Tab.doEditTableRow(Tab.java:1354)
位于com.follett.fsc.core.utils.schema.workbench.gui.components.Tab.doEditRow(Tab.java:1437)
在com.follett.fsc.c