gpt4 book ai didi

java - 线程中出现异常 "AWT-EventQueue-0"java.lang.NullPointerException 弹跳球

转载 作者:行者123 更新时间:2023-12-01 12:29:16 27 4
gpt4 key购买 nike

我有一个包含四个类的 java 程序,但我将发布两个类只是为了展示我的对象交互。运行它后,我收到 AWT-EventQueue-0"java.lang.NullPointerException我相信这是因为我的对象交互。如何解决?

public class myFrame extends JFrame {
public PanelOne P1 = new PanelOne();
public PanelTwo P2 = new PanelTwo();
public myFrame mf;

public myFrame() {
super("MyFrame");
setLayout(new BorderLayout());
add(P1,BorderLayout.CENTER );
add(P2,BorderLayout.EAST);
setSize(600,500);
setVisible(true);
}
public static void main(String args[]) {
myFrame mf = new myFrame();
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
<小时/>
public class PanelTwo extends JPanel {
private myFrame mf;

private JButton quit = new JButton("quit");
private ButtonHandler bh = new ButtonHandler();

private JRadioButton start = new JRadioButton("Start", true);
private JRadioButton stop = new JRadioButton("Stop");
private ButtonGroup group = new ButtonGroup();

public PanelTwo(){
super();
setLayout(new GridLayout(9,1));
setBackground(Color.RED);
add(new JLabel("PanelTwo"));
add(quit);
quit.addActionListener(bh);
add(start);
add(stop);
group.add(start);
start.addActionListener(bh);
group.add(stop);
stop.addActionListener(bh);
}
public PanelTwo(myFrame mf){
super();
this.mf=mf;
}
public class ButtonHandler implements ActionListener {

public void actionPerformed(ActionEvent ac){
if(ac.getSource()==quit){
System.exit(0);
}
if(ac.getSource()==stop){
mf.P1.timer.stop();
}
if(ac.getSource()==start){
mf.P1.timer.start();
}
}
}
}
<小时/>
And this is what I got:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Sep16and2014.PanelTwo$ButtonHandler.actionPerformed(PanelTwo.java:45)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
.........
<小时/>

所以,它说我的错误以 mf.P1.timer.stop(); 开头我相信我在某个地方分配了一个空值。如何修复它?

最佳答案

您正在使用空构造函数实例化 Panel2,而不是传递它 mf。您可能希望在 myFrame 中使用此内容:

  public myFrame mf;
public PanelTwo P2 = new PanelTwo(mf);

关于java - 线程中出现异常 "AWT-EventQueue-0"java.lang.NullPointerException 弹跳球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26079115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com