簡體   English   中英

如何解決錯誤“線程“ AWT-EventQueue-0” java.lang.NullPointerException:中的異常”?

[英]How to solve error “ Exception in thread ”AWT-EventQueue-0“ java.lang.NullPointerException:”?

我為手臂處理器制作了MyApp(安裝了ARMv7、512 RAM,Debian Wheezy OS,Openjdk-7)。 當我在此操作系統上運行MyApp時,出現錯誤。 我的代碼和錯誤如下。 我根據該錯誤進行搜索,但無法解決該錯誤。 MyApp在已安裝Windows 7和Ubuntu 12.04的PC上運行良好。 那么,有誰有想法或解決方案而不是向我建議?

import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author JAY_2
 */
public class MyApp extends JPanel {

    /**
     * @param args the command line arguments
     */
    public static javax.swing.JTextField inpuText;
    private javax.swing.JLabel inputLbl;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JLabel outPutLbl;
    public static javax.swing.JTextArea outPuttextArea;
    private javax.swing.JLabel tempLbl;
    public static javax.swing.JLabel tempShowLbl;
    public static javax.swing.JTextArea temptextArea;

    public MyApp() {
        // TODO code application logic here
        setComponents();
    }

    private void setComponents() {
        tempLbl = new javax.swing.JLabel("Temperature :");
        tempShowLbl = new javax.swing.JLabel("Label");
        inputLbl = new javax.swing.JLabel("InPut :");
        inpuText = new javax.swing.JTextField();
        outPutLbl = new javax.swing.JLabel("OutPut :");
        jScrollPane1 = new javax.swing.JScrollPane();
        outPuttextArea = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        temptextArea = new javax.swing.JTextArea(55000, 10);

        this.setBackground(new java.awt.Color(204, 255, 255));

        tempLbl.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

        tempShowLbl.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N        

        inputLbl.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        inpuText.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        inpuText.setText(""); // NOI18N

        outPutLbl.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

        outPuttextArea.setColumns(20);
        outPuttextArea.setRows(5);
        jScrollPane1.setViewportView(outPuttextArea);

        temptextArea.setColumns(20);
        temptextArea.setRows(10);
        jScrollPane2.setViewportView(temptextArea);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(this);
        this.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addComponent(inputLbl).addContainerGap(482, Short.MAX_VALUE)).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(outPutLbl).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 253, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 102, Short.MAX_VALUE).addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(jPanel1Layout.createSequentialGroup().addComponent(inpuText, javax.swing.GroupLayout.PREFERRED_SIZE, 156, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 122, Short.MAX_VALUE).addComponent(tempLbl).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(tempShowLbl, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE))).addGap(36, 36, 36)))));
        jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addComponent(inputLbl).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(inpuText, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(tempLbl, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(tempShowLbl, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(jPanel1Layout.createSequentialGroup().addGap(43, 43, 43).addComponent(outPutLbl).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)).addGroup(jPanel1Layout.createSequentialGroup().addGap(3, 3, 3).addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 222, Short.MAX_VALUE))).addContainerGap()));

    }

    public static void main(String[] args) {
        // TODO code application logic here
        JFrame jFrame = new JFrame();
        jFrame.add(new MyApp());
        jFrame.setSize(500, 400);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.setVisible(true);
    }
}

錯誤:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:566)
    at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:211)
    at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
    at sun.awt.SunToolkit.flushPendingEvents(SunToolkit.java:551)
    at java.awt.EventQueue.postEvent(EventQueue.java:240)
    at sun.awt.PostEventQueue.flush(SunToolkit.java:2024)
    at sun.awt.SunToolkit.flushPendingEvents(SunToolkit.java:560)
    at java.awt.EventQueue.getNextEvent(EventQueue.java:523)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:180)
    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)
Exception in thread "AWT-XAWT" java.lang.NullPointerException: 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:566)
    at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:211)
    at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
    at sun.awt.SunToolkit.awtLock(SunToolkit.java:237)
    at sun.awt.X11.XBaseWindow.ungrabInput(XBaseWindow.java:883)
    at sun.awt.X11.XToolkit.run(XToolkit.java:675)
    at sun.awt.X11.XToolkit.run(XToolkit.java:591)
    at java.lang.Thread.run(Thread.java:722)

刪除了OpenJdk-7版本,並安裝了用於ARM處理器和Hard Float Os映像的Oracle Jdk。 這是鏈接。 適用於ARM處理器的Oracle JDK

通過在EventDispatchThread中執行代碼來重試此操作:

public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                 JFrame jFrame = new JFrame();
                    jFrame.add(new MyApp());
                    jFrame.setSize(500, 400);
                    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    jFrame.setVisible(true);

            }
        });
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM