面板按钮测试出现的问题

silent-joker silent-joker 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
package Tx;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class ButtonTestOne {
public static void main(String [] args){
EventQueue.invokeLater(new Runnable(){
public void run()
{
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}

class ButtonFrame extends JFrame{
public ButtonFrame(){
setTitle("ButtonTestOne");
setSize(width, height);

makeButton("yellow", Color.YELLOW);
makeButton("blue", Color.BLUE);
makeButton("red", Color.RED);

add(buttonPanel);
}

public void makeButton(String name, final Color backgroundColor){
JButton button = new JButton(name);
buttonPanel.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
buttonPanel.setBackground(backgroundColor);
}
});
}

private JPanel buttonPanel;
private static final int width = 300;
private static final int height = 200;
}

以下为测试时出现的异常,该怎么解决?
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Tx.ButtonFrame.makeButton(ButtonTestOne.java:36)
at Tx.ButtonFrame.<init>(ButtonTestOne.java:27)
at Tx.ButtonTestOne$1.run(ButtonTestOne.java:14)
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)
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
silent-joker
Java 51,407 成员 86,129 内容