我知道并且在这个问题上看到了一些线索,但到目前为止它们都没有给我带来解决方案。作为初学者,我自己努力寻找解决方案,但这是我能做到的最大努力。
我想通过btn(在B类中)改变lbl(在A类中)并且使用此代码,我有一个非常长的错误消息,但它在B类中显示了这一行(a.setText ("变更"!);)
感谢。
A类:
private JFrame frame;
private JPanel panel;
private JLabel lbl;
public a() {
form();
labels();
frame.add(panel);
frame.setVisible(true);
}
public void form(){
frame = new JFrame("Frame");
frame.setSize(100, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setLayout(null);
}
public void labels() {
lbl = new JLabel("1");
lbl.setBounds(30, 20, 10, 10);
panel.add(lbl);
}
public void setText(String text) {
lbl.setText(text);
System.out.println("executed");
panel.validate();
panel.repaint();
}
public static void main(String[] args) {
new a();
}
B组:
private JFrame frame;
private JPanel panel;
private JButton btn;
a a;
public b() {
form();
buttons();
frame.add(panel);
frame.setVisible(true);
}
public void form(){
frame = new JFrame("Frame");
frame.setSize(100, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setLayout(null);
}
public void buttons() {
btn = new JButton("Click me to change!");
btn.setBounds(30, 20, 10, 10);
btn.addActionListener(new ChangeHandler());
panel.add(btn);
}
class ChangeHandler implements ActionListener {
public void actionPerformed(ActionEvent event) {
a.setText("Changed!");
}
}
public static void main(String[] args) {
new b();
}