通过另一个JFrame更新JLabel

时间:2018-04-07 15:25:29

标签: java swing jbutton jlabel

我知道并且在这个问题上看到了一些线索,但到目前为止它们都没有给我带来解决方案。作为初学者,我自己努力寻找解决方案,但这是我能做到的最大努力。

我想通过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();
}

0 个答案:

没有答案