java - 按钮的返回方法不起作用

标签 java netbeans

stackoverflow 上的某人帮助我编写了这段代码,因此我可以在方法中使用它来返回我单击的按钮...现在 netbeans 不会显示任何冲突的代码,但当我运行它时,它会出现错误

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

public final class CharSearch extends Box{
int i =0;
int error = 0;
static JPanel panel;
String original = "Dinosaur";
JLabel label = new JLabel();
String secret = new String(new char[original.length()]).replace('\0', '-');

public CharSearch(){

super(BoxLayout.Y_AXIS);
    for(char i = 'A'; i <= 'Z'; i++){
        String buttonText = new Character(i).toString();
        JButton button = getButton(buttonText);
        add(button);
    }
}

public JButton getButton(final String text){
    final JButton button = new JButton(text);
    button.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(null, "You have clicked: "+text);
            //If you want to do something with the button:
            button.setText("Clicked"); // (can access button because it's marked as final)
        }
    });
    return button;
}

public static void main(String[] args){
    EventQueue.invokeLater(new Runnable(){
        public void run(){
           JFrame frame=new JFrame();
            frame.add(panel);
            frame.pack();
            frame.setVisible(true);
        }
    });
}
}

当我运行该程序时,出现此错误

enter image description here

最佳答案

非常明显,您永远不会初始化静态属性面板:

static JPanel panel;

所以NPE是在这部分代码中生成的:

public static void main(String[] args){
    EventQueue.invokeLater(new Runnable(){
        public void run(){
           JFrame frame=new JFrame();
            frame.add(panel); // <--------------- NullPointer to panel
            frame.pack();
            frame.setVisible(true);
        }
    });
}

关于java - 按钮的返回方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130923/

相关文章:

java - ArrayList 声明的语法错误

java - 获取集合的通用类型而不 check out 元素

java - 验证旧 CSV 文件中的信息后打印写入新 CSV 文件并将 DATA INFILE 加载到 MySQL 中

java - 无法使用已安装的 java 3d

java - java中在main方法之前声明一个类

java - 在 Netbeans 中监视 HTTP 请求和 WebSocket

java - 关闭连接后 Socket 和 SwingWorker 不工作

java - 向我的 Maven 项目添加非 jar 依赖项

带有 key 的 Java HmacSHA256

netbeans - 如何在NetBeans IDE 6.9.1中包装单词/行?