Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;AWT-EventQueue-0“;java.lang.NullPointerException_Java_Swing - Fatal编程技术网

&引用;AWT-EventQueue-0“;java.lang.NullPointerException

&引用;AWT-EventQueue-0“;java.lang.NullPointerException,java,swing,Java,Swing,我的代码中有一个“线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException”。我不知道为什么会发生这种异常,也不知道发生在哪里。编译工作正常,但有时在运行时会出现此错误。我能在这里得到一些帮助吗?完整的错误消息如下: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicTableUI.paintC

我的代码中有一个“线程中的异常”AWT-EventQueue-0“java.lang.NullPointerException”。我不知道为什么会发生这种异常,也不知道发生在哪里。编译工作正常,但有时在运行时会出现此错误。我能在这里得到一些帮助吗?完整的错误消息如下:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2115)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2016)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
我的部分代码:

class UserAgentGui extends JFrame implements ActionListener, ListSelectionListener, CinemaVocabulary {

private JTable movieTable;

public UserAgentGui(UserAgent a) {
// -----------------------------------   Constructor

    Object obj[][] = new Object[0][columnNames.length];
    TableModel model = new TableDataModel(obj, columnNames);
    movieTable = new JTable(model);
movieTable.setFillsViewportHeight(true);
    movieTable.setPreferredScrollableViewportSize(new Dimension(320,100));
    movieTable.setFont(new Font("Arial", Font.PLAIN, 11));
}

void displayMovies(java.util.leap.List list) {
// -------------------------------------------
    String s = "";

    if (menu.getSelectedItem().equals(actions[1])){//  <-- This is a list of movies
        s = "Movie-databse is presented";
        data = new Object[list.size()][columnNames.length];
        for (int i = 0; i < list.size(); i++) {
            Movie movie = (Movie)list.get(i);
            data[i][0] = movie.getTitle();
            data[i][1] = movie.getYear();
            data[i][2] = movie.getKind();
            data[i][3] = 0.0;
        }
    TableDataModel model = (TableDataModel)movieTable.getModel();
    model.setData(data);
    movieTable.setModel(model);
    movieTable.updateUI();
    }
    else {
        s = "Score Movies";
    }
    msg_text.setText(s);    
}

// =========================== External class ============================//

/* TableDataModel:
*  --------------
*  External class for the definition of the tables data model, used to
*  control the display of data within the different tables
**/
class TableDataModel extends AbstractTableModel {
// ----------------------------------------------

   private String[] columns;
   private Object[][] data;

   public TableDataModel(Object[][] data, String[] columns) {
   // ----------------------------------------------------------  Constructor
      this.data = data;
      this.columns = columns;
   }

   public int getColumnCount() {
   // -----------------------------  Return the number of columns in the table
      return columns.length;
   }

   public int getRowCount() {
   // --------------------------  Return the number of rows in the table
      return data.length;
   }

   public String getColumnName(int col) {
   // --------------------------------------  Return the name of a column
      return columns[col];
   }

  public boolean isCellEditable(int row, int col) {
   // -------------------------------------------------
            if (col == 3) {
                return true;
           } else {
               return false;
            }
   }

   public Object getValueAt(int row, int col) {
   // --------------------------------------------  Return the value at a specific
//                                               row and column
      if ( data.length == 0 ) return null;
         return data[row][col];
    }

   public Class getColumnClass(int col) {
   // --------------------------------------  Return the class of the values held
   //                                         by a column
      Object o = getValueAt(0, col);
      if (o == null) return columns[col].getClass();
         return getValueAt(0, col).getClass();
   } 

   public void setValueAt(Object value, int row, int col){
    // -------------------------------------------------------  Set the value at a        specific
   //                                                          row and column
      data[row][col] = value;
  }

   public void setData(Object[][] data){
   // -------------------------------------  Update the entire data in the table
       this.data = data;
   }

   Object[][] getData(){
   // ---------------------  Return the entire data of the table
       return data;
   }
}// end TableDataModel
}
类UserAgentGui扩展JFrame实现了ActionListener、ListSelectionListener和Cinema词汇表{ 私人电影; 公共用户代理GUI(用户代理a){ //------------------------------------构造函数 Object obj[][]=新对象[0][columnNames.length]; TableModel model=新的TableDataModel(obj,columnNames); movieTable=新JTable(型号); 可移动。setFillsViewportHeight(真); movieTable.setPreferredScrollableViewportSize(新维度(320100)); movieTable.setFont(新字体(“Arial”,Font.PLAIN,11)); } void displayMovies(java.util.leap.List){ // ------------------------------------------- 字符串s=“”;
如果(menu.getSelectedItem().equals(actions[1]){/您可以从堆栈跟踪中看到它正试图绘制屏幕内容。可能该屏幕或其组件上的某些内容未正确初始化。

Object obj[][]=新对象[0][columnNames.length];

您已将obj的第一个尺寸设置为0。
它应该是
objectobj[][]=newobject[1][columnNames.length]

我收到一个“线程中的异常”AWT-EventQueue-0 我的代码中有java.lang.NullPointerException“”。我不知道为什么和 编译工作正常,但有时 我在运行时遇到这个错误。我能在这里得到一些帮助吗?完整的错误 信息如下:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2115)
at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2016)
at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
at javax.swing.JComponent._paintImmediately(JComponent.java:5169)
at javax.swing.JComponent.paintImmediately(JComponent.java:4980)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:770)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
  • 这个问题根本不需要回答,为了更好的帮助,请尽快发布一个SSCCE,简短、可运行、可编译,将所有自定义类硬编码到局部变量

  • 您混合了两个XXXtableModel,没有理由从TableModel中获取TableDataModel

  • TableModel是从这个代码中不知道的

  • TableDataModel未添加到可见JTable中

  • void displayMovies(java.util.leap.List){不是标准的java导入

  • movieTable.updateUI();将在您创建自己的BasicTableUI的情况下工作,但这部分没有与XxxTableModel和代码发布相关的内容

  • updateUI()是用于UIManager和外观的方法,而不是用于将共享模型中的数据显示到屏幕上


我的猜测是,您在使用JTable变量时没有实例化它。显示您的代码。我们可以看到您的代码吗?您可以发布您的代码吗?这是什么:
movieTable.updateUI();
?虽然它应该是无害的,但它并不意味着直接使用(除非您特别更改L&F)+1问题中只有一个pct:-)哈哈……是的……有点累了……)