gpt4 book ai didi

java - 从另一种方法更改 Jlabel 的文本

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

如果这个问题的解决方案很明显,我深表歉意,我确信解决方案很简单,只是我似乎无法正确理解。

我已经创建了 JFrame,如下面的代码所示。我想从我的主要方法中更改标签 ( lblStatus ) 的文本,但我似乎无法让它工作。我是否需要创建一个新的标签实例或类似的东西?

谁能告诉我应该采取什么方法?

问候, 丹.

注意-我删除了一些内容以突出显示相关代码。

public class server {

private JFrame frmCorbaServer;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
server window = new server();
window.frmCorbaServer.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});

// SERVER CONTENT
// If connection made
System.out.println("Server connected"); // I want this to display in lblStatus!


}

/**
* Create the application.
*/
public server() {
initialize();
}

/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmCorbaServer = new JFrame();
frmCorbaServer.setTitle("server 0.1");
frmCorbaServer.setResizable(false);
frmCorbaServer.setBounds(100, 100, 257, 153);
frmCorbaServer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmCorbaServer.getContentPane().setLayout(null);

JLabel lblStatus = new JLabel("...");
lblServant.setFont(new Font("Tahoma", Font.PLAIN, 10));
lblServant.setBounds(10, 36, 231, 14);
frmCorbaServer.getContentPane().add(lblServant);
}

}

最佳答案

JLabel 应该是一个实例成员。处理程序将帮助您在实例方法中修改标签的文本。

public class server
{
private JLabel lblStatus= new JLabel("Text") ;

public void changeLabel(String text)
{
lblStatus.setText(text) ;
}

}

在主要部分:window.changeLabel("在主要部分") ;

必须这样做,因为在您的初始化方法中,对 lblStatus 的引用丢失了

private void initialize() {
frmCorbaServer = new JFrame();
frmCorbaServer.setTitle("server 0.1");
frmCorbaServer.setResizable(false);
frmCorbaServer.setBounds(100, 100, 257, 153);
frmCorbaServer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmCorbaServer.getContentPane().setLayout(null);

JLabel lblStatus = new JLabel("..."); // Forgotten when method finishes
lblServant.setFont(new Font("Tahoma", Font.PLAIN, 10));
lblServant.setBounds(10, 36, 231, 14);
frmCorbaServer.getContentPane().add(lblServant);
}

关于java - 从另一种方法更改 Jlabel 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079277/

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