gpt4 book ai didi

java - java中一个简单的按钮处理程序的运行时错误

转载 作者:行者123 更新时间:2023-11-29 05:52:41 25 4
gpt4 key购买 nike

您好,我在使用基本按钮处理程序时遇到了问题。我在运行时遇到此错误。

Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1086)
at java.awt.Container.add(Container.java:998)
at javax.swing.JFrame.addImpl(JFrame.java:562)
at java.awt.Container.add(Container.java:966)
at practicagrafica5.botonpanel.<init>(botonpanel.java:44)
at practicagrafica5.Practicagrafica5.main(Practicagrafica5.java:17)
Java Result: 1

继承人代码:

    package practicagrafica5;

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



public class botonpanel {


JButton botones[];
String nombresbot[]={"primero","segundo","tercero"};
JTextArea areatexto;
JPanel panelbotones;
JFrame ventana;

botonpanel(){
JFrame.setDefaultLookAndFeelDecorated(true);
ventana= new JFrame("botones de prueba");
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setLayout(new BorderLayout());
ventana.setSize(400, 400);

/* NOTA:
ventana.setIconImage(Toolkit.getDefaultToolKit().createImage("aqui iria la ruta de la imagen en la pc")
*/
botones=new JButton[nombresbot.length];
panelbotones=new JPanel();
panelbotones.setLayout(new FlowLayout(FlowLayout.LEFT));


for (int i=0; i<nombresbot.length; i++){
botones[i]=new JButton();
botones[i].setName(nombresbot[i]);
botones[i].setToolTipText("este es "+nombresbot[i]);
botones[i].addMouseListener(new handlerbotones());
panelbotones.add(botones[i]);
}
ventana.add(panelbotones,BorderLayout.NORTH);
ventana.add(areatexto,BorderLayout.CENTER);
ventana.setVisible(true);
}//finaliza el constructor

class handlerbotones extends MouseAdapter{

@Override
public void mousePressed(MouseEvent e){
//como JPanel es un "hijo" de Component utilizamos en los metodos un objeto de la clase Component
//y con su metodo getComponent obtendremos una referencia al componente en este caso el boton.
Component aux = e.getComponent();
System.out.println(aux.getName());
}
@Override
public void mouseReleased(MouseEvent e){
Component aux= e.getComponent();
switch (aux.getName()) {
case "primero":
areatexto.append("se ha pulsado el primer boton \n");
break;
case "segundo":
areatexto.append("se ha pulsado el segundo \n");
break;
case "tercero":
areatexto.append("se ha pulsado el tercero \n");
break;
default:
areatexto.append("no has pulsado un coño");
break;
}
}
}//finaliza la clase interna handlerbotones


}

主应用程序中的代码只是:

package practicagrafica5;

public class Practicagrafica5 {


public static void main(String[] args) {
botonpanel lol= new botonpanel();
}
}

拜托,我的头要被这个炸了。我不知道我的错误在哪里。任何建议都会有所帮助。

谢谢。

最佳答案

您永远不会创建 areatexto 对象,例如

areatexto = new JTextArea();

关于java - java中一个简单的按钮处理程序的运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13327174/

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