代码之家  ›  专栏  ›  技术社区  ›  KJW

Java:线程异常“AWT-EngEngQueE-0”JavaLang.Null PoExExtExchange

  •  0
  • KJW  · 技术社区  · 14 年前
    public class MainFrame extends JFrame {
        public DefaultTableModel historyModel;
        public DefaultTableModel dataModel;
        public JTable historyTable;
        public JTable dataTable;
        public JTableHeader header;
    
    private void createUI() {
            browsersTabbedPane = new BrowsersTabbedPane();
            add(browsersTabbedPane.getTabPane(), CENTER);
            addDefaultBrowserComponentForTabbedPane();
            createActions();
            add(createToolBar(), BorderLayout.NORTH);
            add(createStatusBar(), BorderLayout.SOUTH);
            add(createDataView(dataModel,dataTable, header), BorderLayout.PAGE_END);
            add(createHistoryView(historyModel,historyTable), BorderLayout.LINE_END);
            add(createBigButton(browsersTabbedPane.getActiveBrowser(),dataModel,historyModel,dataTable,historyTable), BorderLayout.WEST);
    
            createMenuBar();
        }
    
    private JPanel createDataView(DefaultTableModel dataModel, JTable dataTable, JTableHeader header){
            JPanel panel = new JPanel();
    
            Object data[][] = {{"001","vinod","Bihar","India","Biology","65","First"},
                               {"002","Raju","ABC","Kanada","Geography","58","second"},
                               {"003","Aman","Delhi","India","computer","98","Dictontion"},
                               {"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"},
                               {"004","Ranjan","Bangloor","India","chemestry","90","Dictontion"}};
            Object col[] = {"Roll","Name","State","country","Math","Marks","Grade"};
            dataModel = new DefaultTableModel(data,col);
            dataTable = new JTable(dataModel);
    
            dataTable.setPreferredScrollableViewportSize(new Dimension(1500,100));
            header = dataTable.getTableHeader();
            header.setBackground(Color.yellow);
            JScrollPane pane = new JScrollPane(dataTable);
            dataTable.setAutoResizeMode(JTable.WIDTH);
            dataTable.doLayout();
            panel.add(pane);
            return panel;
    
        }
    
        private JPanel createBigButton(Browser browser, DefaultTableModel dataModel, DefaultTableModel historyModel, JTable dataTable, JTable historyTable){
            JPanel panel = new JPanel();
            JButton bigbutton = new JButton("Big Button");
            bigbutton.addActionListener(new BigButtonListener(browser,dataModel,historyModel,dataTable, historyTable));
            panel.add(bigbutton);
            return panel;
        }
    
       class BigButtonListener implements ActionListener{
            Image screenshot;
            Browser bigbrowser;
    
            BigButtonListener(Browser browser, DefaultTableModel dataModel, DefaultTableModel historyModel, JTable dataTable, JTable historyTable) {
                screenshot = browser.toImage(true);
                bigbrowser = browser;
                historyModel = historyModel;
                dataModel = dataModel;
                dataTable = dataTable;
                historyTable = historyTable;
                //table1.addRow
            }
    
            @Override
            public void actionPerformed(ActionEvent e) {
                // save current image           
                //historyModel.insertRow(2,new Object[]{"Sushil"}); 
                System.out.println(historyTable.getRowCount());
    
            }   
        }  
    }
    

    单击大按钮时出现问题。它应该输出HistoryTable(公共)的总行数。

    但是,这是stacktrace输出

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at com.my.demo.MainFrame$BigButtonListener.actionPerformed(MainFrame.java:356)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
    
    2 回复  |  直到 11 年前
        1
  •  2
  •   erickson    14 年前

    historyTable

        2
  •  0
  •   Tasman Vose    11 年前