1

を作成しましたJDialog。それが現れると、JTabbedPaneいくつかFormPanelの がある があります。フォーム パネルはフォーム ファイルとして読み込まれます (私はAbeilleJTableを使用してフォームを作成しました。) フォームの 1 つに (再びAbeille を使用して) を追加しようとするまで問題はありませんでした。私が行ったようにフォームを追加します。残りのタブですが、実行するdialog.packNullPointerException. そのフォーム内のテーブルは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();

3番目のインサート、「シード」と呼ばれるものは、それを吹き飛ばすものです。行をコメントアウトすると、他のタブが正常に表示されます。同様に、JTableAbeille のフォームから を削除すると、タブが正常に表示されます。

columnCountとのデフォルトは 2 であることに注意rowCountしてください。また、パックをオフにすると、同じエラーをスローするのsetVisibleオフがあることにも注意してください。JDialog

助けていただければ幸いです。Swing は大丈夫ですが、上手とはほど遠いです。

スタックトレース:

スレッド「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.configureEnclosingScrollPane(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.core.utils.schema.workbench.gui.components.Tab$17$1.run(Tab.java:1016) で
    java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642) で
    java.awt.EventQueue.access$000 (EventQueue.java:85) で
    java.awt.EventQueue$1.run(EventQueue.java:603) で
    java.awt.EventQueue$1.run(EventQueue.java:601) で
    java.security.AccessController.doPrivileged(ネイティブメソッド)で
    java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) で
    java.awt.EventQueue.dispatchEvent(EventQueue.java:612) で
    java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:269) で
    java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) で
    java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:174) で
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) で
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) で
    java.awt.EventDispatchThread.run(EventDispatchThread.java:122) で
4

0 に答える 0