java - 将文本显示到另一个类的标签 - JFrame

标签 java swing

我有一个 GUI 屏幕,里面有一个标签。我现在想用文本设置标签,如下所示(测试)。但它没有得到更新。我认为以下代码中有错误,我在 try block 中重新创建了 FrameTest 的新对象;

FrameTest frame = new FrameTest();
frame.setVisible(true); //(the full code given below)

完整代码:注意:以下类扩展自JFrame

import java.awt.BorderLayout;

public class FrameTest extends JFrame {

    private JPanel contentPane;
    private JLabel lblLabel;

    public  void mainScreen() {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    FrameTest frame = new FrameTest();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }


    public void writeLabel(String k){
        this.lblLabel.setText(k);

    }


    public FrameTest() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        lblLabel = new JLabel("LABEL");
        contentPane.add(lblLabel, BorderLayout.CENTER);
    }

}

测试类

public class Test {

    public static void main(String[] args) {

         FrameTest f = new FrameTest();
         f.mainScreen();
         f.writeLabel("FFFFF");
}}

帮助,我怎样才能让文本“FFFFF”显示到标签上?

最佳答案

在您的 mainScreen() 中,您创建了一个新的 FrameTest,它与您在 main 例程中创建的框架不同,因此它实际上是更改不可见框架的文本。试试这个:

private FrameTest frame = this;

public  void mainScreen() {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
                frame.setVisible(true);
        }
    });
}

或者简单地说:

public  void mainScreen() {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
                setVisible(true);
        }
    });
}

关于java - 将文本显示到另一个类的标签 - JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13470481/

相关文章:

java - 我怎样才能定义一个 map 接受不同类型的节俭值(value)?

java - 访问可以是 ConcurrentHashMap 的对象的 ConcurrentHashMap

java - Netbeans GUI 编辑器问题

java - mouseMoved 上的 LWJGL 应用程序 NullPointerException

Java函数中的final变量

java - 如何使方法返回面板?

带有计时器/延迟的JPanel上的java绘图

java - gridheight 似乎不起作用

java - 将 JApplet 嵌入到 JFrame 中

Java 将 JFrame 附加到正在运行的应用程序窗口?