2014-05-02 15 views
-2

我想创建像在Visual Studio(C#)的形式,其改变的窗口(面板)的应用程序。 我有很多错误,我不明白为什么;请帮助我了解我做错了什么。的Java Swing异常在线程 “AWT-EventQueue的 - 0”

这里是我的错误的详细信息:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at Interfata.InterfataDB$2.actionPerformed(InterfataDB.java:83) 
    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.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$200(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(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) 

,这里是我的应用程序代码:

package Interfata; 

import java.awt.EventQueue; 

import javax.swing.JFrame; 
import java.awt.CardLayout; 
import javax.swing.JPanel; 
import javax.swing.JLabel; 
import javax.swing.JButton; 
import javax.swing.JTextField; 
import java.awt.Color; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

public class InterfataDB { 

    private JFrame frame; 
    private JTextField textFieldNameInsert; 
    private JTextField textFieldAdressInsert; 
    private JTextField textFieldSelect; 
    private JPanel panelMenu; 
    private JPanel panelInsert; 
    private JPanel panelSelect; 
    private JPanel panelUpdate; 
    private JPanel panelDelete; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        InterfataDB window = new InterfataDB(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 
    public InterfataDB() { 
     initialize(); 
    } 

    /** 
    * Initialize the contents of the frame. 
    */ 
    private void initialize() { 
     frame = new JFrame(); 
     frame.setBounds(100, 100, 450, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().setLayout(new CardLayout(0, 0)); 

     final JPanel panelMenu = new JPanel(); 
     frame.getContentPane().add(panelMenu, "name_294128049815194"); 
     panelMenu.setLayout(null); 
     panelMenu.setVisible(true); 

     JLabel lblWelcomeToDb = new JLabel("Welcome to DB Work Station"); 
     lblWelcomeToDb.setBounds(141, 27, 137, 14); 
     panelMenu.add(lblWelcomeToDb); 

     JLabel lblMenu = new JLabel("Menu"); 
     lblMenu.setBounds(179, 52, 34, 14); 
     panelMenu.add(lblMenu); 

     JLabel lblChooseOneOf = new JLabel("Choose one of the following options:"); 
     lblChooseOneOf.setBounds(122, 93, 185, 14); 
     panelMenu.add(lblChooseOneOf); 

     JButton btnSelect = new JButton("Select"); 
     btnSelect.setBounds(35, 200, 91, 23); 
     panelMenu.add(btnSelect); 

     JButton btnInsert = new JButton("Insert"); 
     btnInsert.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       panelInsert.setVisible(true); 
       panelSelect.setVisible(false); 
       panelUpdate.setVisible(false); 
       panelDelete.setVisible(false); 
      } 
     }); 
     btnInsert.setBounds(35, 150, 91, 23); 
     panelMenu.add(btnInsert); 

     JButton btnUpdate = new JButton("Update"); 
     btnUpdate.setBounds(277, 150, 91, 23); 
     panelMenu.add(btnUpdate); 

     JButton btnDelete = new JButton("Delete"); 
     btnDelete.setBounds(277, 200, 91, 23); 
     panelMenu.add(btnDelete); 

     final JPanel panelInsert = new JPanel(); 
     frame.getContentPane().add(panelInsert, "name_294130167783866"); 
     panelInsert.setLayout(null); 
     panelInsert.setVisible(false); 

     JLabel lblWelcomeToInsert = new JLabel("Welcome to Insert option"); 
     lblWelcomeToInsert.setBounds(157, 45, 128, 14); 
     panelInsert.add(lblWelcomeToInsert); 

     JLabel lblName = new JLabel("Name"); 
     lblName.setBounds(80, 94, 46, 14); 
     panelInsert.add(lblName); 

     JLabel lblAdress = new JLabel("Adress"); 
     lblAdress.setBounds(80, 129, 46, 14); 
     panelInsert.add(lblAdress); 

     textFieldNameInsert = new JTextField(); 
     textFieldNameInsert.setBounds(157, 91, 86, 20); 
     panelInsert.add(textFieldNameInsert); 
     textFieldNameInsert.setColumns(10); 

     textFieldAdressInsert = new JTextField(); 
     textFieldAdressInsert.setBounds(157, 126, 86, 20); 
     panelInsert.add(textFieldAdressInsert); 
     textFieldAdressInsert.setColumns(10); 

     JButton btnRunInsert = new JButton("Run Insert"); 
     btnRunInsert.setBounds(311, 217, 91, 23); 
     panelInsert.add(btnRunInsert); 

     final JPanel panelSelect = new JPanel(); 
     frame.getContentPane().add(panelSelect, "name_294134957448744"); 
     panelSelect.setLayout(null); 
     panelSelect.setVisible(false); 

     JLabel lblWelcomeToSelect = new JLabel("Welcome to Select option:"); 
     lblWelcomeToSelect.setBounds(144, 49, 132, 14); 
     panelSelect.add(lblWelcomeToSelect); 

     JLabel lblYourResultWill = new JLabel("Your result will apear here"); 
     lblYourResultWill.setBackground(Color.CYAN); 
     lblYourResultWill.setBounds(84, 92, 241, 96); 
     panelSelect.add(lblYourResultWill); 

     JButton btnRunSelect = new JButton("Run Select"); 
     btnRunSelect.setBounds(310, 225, 91, 23); 
     panelSelect.add(btnRunSelect); 

     textFieldSelect = new JTextField(); 
     textFieldSelect.setBounds(10, 226, 266, 20); 
     panelSelect.add(textFieldSelect); 
     textFieldSelect.setColumns(10); 

     JLabel lblEnterScriptHere = new JLabel("Enter script here:"); 
     lblEnterScriptHere.setBounds(10, 201, 91, 14); 
     panelSelect.add(lblEnterScriptHere); 

     final JPanel panelUpdate = new JPanel(); 
     frame.getContentPane().add(panelUpdate, "name_294154843658550"); 
     panelUpdate.setLayout(null); 
     panelUpdate.setVisible(false); 

     JLabel lblWelcomeToUpdate = new JLabel("Welcome to Update option"); 
     lblWelcomeToUpdate.setBounds(156, 66, 137, 14); 
     panelUpdate.add(lblWelcomeToUpdate); 

     final JPanel panelDelete = new JPanel(); 
     frame.getContentPane().add(panelDelete, "name_294158967970281"); 
     panelDelete.setLayout(null); 
     panelDelete.setVisible(false); 

     JLabel lblWelcomeToDelete = new JLabel("Welcome to Delete option"); 
     lblWelcomeToDelete.setBounds(150, 66, 136, 14); 
     panelDelete.add(lblWelcomeToDelete); 
    } 

} 
+0

'java.lang中。 NullPointerException异常 在Interfata.InterfataDB $ 2.actionPerformed(InterfataDB.java:83)'这部分告诉你到底发生了什么,并在其上线。 – immibis

回答

1

您的问题是您声明成员变量(panelInsert,panelSelect等):

public class InterfataDB { 

    ... 
    private JPanel panelInsert; 
    private JPanel panelSelect; 
    private JPanel panelUpdate; 

但在你的initialize()方法,而不是使用你的成员变量,你再一次声明变量,像这样:

... 
final JPanel panelSelect = new JPanel(); 
final JPanel panelInsert = new JPanel(); 

取而代之的是,在你的initialize()方法必须做这样的事情:

this.panelSelect = new JPanel(); 
this.panelInsert = new JPanel(); 

亲切的问候,

+0

感谢的,就是作品:) – Choletski

相关问题