java lable改变_java – 更改JLabel的文本 – 初学者

本文档介绍了一个Java初学者遇到的问题,即如何从主方法动态更改JFrame中的JLabel文本。在提供的代码示例中,创建了一个`TestGU`类,包含一个`JLabel`实例,并定义了`redefine`方法用于更新标签文本。然而,当从另一个类`Test`的`main`方法调用`redefine`时,标签的文本并未更新。问题在于`TestGU`的`mainM`方法和`Test`类的`main`方法分别创建了两个独立的`TestGU`实例,导致无法正确访问和修改标签。解决方案是确保使用同一个`TestGU`实例来调用`redefine`方法。
摘要由CSDN通过智能技术生成

我的代码;

package com.test;

import java.awt.EventQueue;

public class TestGU {

private JFrame frame;

private JLabel la;

/**

* Launch the application.

*/

public void mainM() {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

TestGU window = new TestGU();

window.frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

public void redefine(String text){

la.setText(text);

frame.repaint();

}

/**

* Create the application.

*/

public TestGU() {

initialize();

}

/**

* Initialize the contents of the frame.

*/

private void initialize() {

frame = new JFrame();

frame.setBounds(100, 100, 450, 300);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

la = new JLabel("New label");

frame.getContentPane().add(null);

}

}

我试图从主方法(这是一个单独的类)更改标签的文本,如下所示;

public class Test {

/**

* @param args

*/

public static void main(String[] args) {

TestGU g = new TestGU();

g.mainM();

g.redefine("New Value");

}

}

1.)当执行main方法时,我希望标签具有文本“New Value”,但它仍然包含文本New label.什么都没有改变,我怎么能纠正这个?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值