获得;AWT事件队列-0“;java.lang.nullpointerexception错误

获得;AWT事件队列-0“;java.lang.nullpointerexception错误,java,swing,user-interface,Java,Swing,User Interface,我不知道我怎么会犯这个错误。当我点击时间按钮时,时间组合框就会显示出来。我的代码如下。我尝试过不同的方法,比如当点击按钮时,我插入时间面板,并在其中插入组合框。我的代码不起作用的原因是什么 import javax.swing.JOptionPane; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class events extends JFrame { // variables fo

我不知道我怎么会犯这个错误。当我点击时间按钮时,时间组合框就会显示出来。我的代码如下。我尝试过不同的方法,比如当点击按钮时,我插入时间面板,并在其中插入组合框。我的代码不起作用的原因是什么

 import javax.swing.JOptionPane;

 import java.awt.*;
 import java.awt.event.*;
import javax.swing.*;

public class events extends JFrame {
// variables for JPanel
private JPanel timePanel;
private JButton timeButton;
 private JButton moneyButton;
private JButton hotelButton;
private JButton exitButton;


 public events() 
 {




setLayout(new BorderLayout()); 

  JPanel buttonPanel = new JPanel();
  buttonPanel.setBackground(Color.RED);
  add(buttonPanel,BorderLayout.WEST);
  JPanel timePanel = new JPanel();
  timePanel.setBackground(Color.BLUE);
  timePanel.setPreferredSize(new Dimension(320, 240));

  add(timePanel,BorderLayout.EAST);   

   Time timeObject = new Time();
      timeObject.SelectTime();
      timePanel.add(timeObject.gettimePanel());
      timeObject.gettimePanel().setVisible(false);


  timeButton = new JButton("Time"); 
  buttonPanel.add(timeButton);

  moneyButton = new JButton("Price");
  buttonPanel.add(moneyButton);

  hotelButton = new JButton("Hotel");
  buttonPanel.add(hotelButton);

  exitButton = new JButton("Exit");
  buttonPanel.add(exitButton);


  buttontime clickTime = new buttontime();
  timeButton.addActionListener(clickTime);




   }

    //classes for Time
 public class buttontime implements ActionListener { //creating actionlistener for     clicking on timebutton to bring up a combobox
  public void actionPerformed(ActionEvent clickTime)  {
           Time timeObject = new Time();
      timeObject.SelectTime();
      timePanel.add(timeObject.gettimePanel());
      timeObject.gettimePanel().setVisible(true);


  }
  }






   public static void main (String args[]) {
events mainmenu = new events(); //object is created


mainmenu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainmenu.setSize(600,400);
mainmenu.setVisible(true);
mainmenu.setLayout(new BorderLayout());
mainmenu.setTitle("Travel Agent System");
mainmenu.setBackground(Color.BLUE);

}





     import javax.swing.JOptionPane;

   import java.awt.*;
  import java.awt.event.*;
 import javax.swing.*;

 class Time
{

  private JComboBox timeairportbox;//comboboxes declared
  private String[] Airport = {"","East Midlands", "Birmingham", "Manchester",  "Heathrow"};//array of airports declared


public void SelectTime() {



  //combobox objects created
  timeairportbox = new JComboBox(Airport);//array is inserted into the JComboBox
  timeairportbox.setVisible(false);   // Combobox is placed in the timePanel




 }

 public JComponent gettimePanel() {
    return timeairportbox;
    }

    }




}
您在
事件的构造函数中隐藏变量
timePanel
,因此从未分配类成员变量,从而导致
NPE
。替换

JPanel timePanel = new JPanel();


旁白:显示类名以大写字母开头,这将使
事件
事件

您是否尝试过调试您的应用程序?是否有人向您解释过,如果遵循Java风格的约定,您的代码更容易阅读和理解?这段代码太可怕了……不客气,以后你能发布一个并格式化代码吗:)
timePanel = new JPanel();