gpt4 book ai didi

java - 从另一个类设置 gui 内容

转载 作者:行者123 更新时间:2023-12-01 18:27:26 25 4
gpt4 key购买 nike

我希望能够更改某些 JLabel 的内容来自另一个类的对象。我有一个GUI包含所有 GUI 对象的类( JFrameJPanel 等)。假设我只有一个 JLabel :

public class GUI {
private JLabel label;

public GUI() {
initialize();//initializes all objects
}

public void update(String s) {
this.label.setText(s);
}
}

GUI具有公共(public)功能 update(String)我希望从另一个类(class)调用它。

我的主类名为App :

public class App {
private static GUI window;

public static void main( String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
window = new GUI();
App.updateTxt("some string");
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

public static void updateTxt(String s) {
window.update(s);
}
}

但是,此解决方案不起作用,GUI.update(String)GUI 内调用时工作正常类(class)。我检查了保罗提出的解决方案: Access GUI components from another class但我不明白。那么我如何调用 GUI 上的方法从另一个类更改 UI?

最佳答案

从发布的代码来看,GUI.update(String) 永远不会被调用,因为它是从 App.updateText(String) 内部调用的,而您从未将其作为一部分调用App.main(String[])

尝试对 App 进行以下更改:

public class App {
private static GUI window;

public static void main( String[] args) throws InterruptedException {
window = new GUI();
Thread.sleep(1000); // Pause for 1 second.
updateText("Hello, world!"); // Update the label with new text.
}

public static void updateTxt(String s) {
window.update(s);
}
}

关于java - 从另一个类设置 gui 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60210660/

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