【发布时间】:2016-02-21 00:22:27
【问题描述】:
我在这个类之外创建了一个 jpanel,它有一个按钮,我希望执行以下操作也被传递。我是编程新手,不知道该怎么做。无法在线找到帮助。 b2.setText(b);
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class myJPanel1 extends JPanel implements ActionListener
{
String b = "a";
JButton jl1;
public myJPanel1(student st1, myJPanel2 b2)
{
super();
setBackground(Color.yellow);
//JButton jl1 = new JButton(st1.getInfo());
jl1 = new JButton(st1.getInfo());
jl1.addActionListener(this);
add(jl1);
}
@Override
public void actionPerformed(ActionEvent e) {
double r = Math.random();
int myNumber = (int)(r*3f);
if (myNumber == 0){
b = "reading";
}
if (myNumber == 1){
b = "talking";
}
if (myNumber == 2){
b = "interacting";
b2.setText(b);
}
}
}
导入 java.awt.; 导入 javax.swing.;
公共类 myJPanel2 扩展了 JPanel {
JButton b1,b2,b3,b4;
public myJPanel2(student st1)
{
super();
setBackground(Color.pink);
//setLayout(new GridLayout(3,1));
b1 = new JButton ("When the user clicks on the button in the UPPER panel");
add(b1);
b2 = new JButton("Display here whatsUp from the student in UPPER Panel" );
add(b2);
b3 = new JButton("===>>>>You CANNOT create a student here <======" );
add(b3);
b4 = new JButton("It has to be the student from the UPPER Panel" );
add(b4);
}
}
【问题讨论】:
-
考虑提供一个runnable example 来证明您的问题。这不是代码转储,而是您正在做的事情的一个例子,它突出了您遇到的问题。这将减少混乱并获得更好的响应
-
根据您的示例,
b2.setText将生成NullPointerException,因为b2从未初始化也不会添加到任何可见容器中,myJPanel2也没有setText方法,所以,它不会编译