如何更新JLabel文本?

6
我正在制作一个“猜词游戏”,其中我想要创建一个JLabel文本,根据单词更新为ex."_ _ _ _ "
如果您需要,我可以分享代码。

2
这个问题显示出很少的研究努力。尝试访问 faq link 以了解如何提出更好的问题,这反过来会使其他人更愿意帮助。 - troy_frommer
5个回答

9
尝试使用setText();来操作你的JLabel

5

JLabel.setText("ex."+text);
super.update(this.getGraphics());


5
你应该在代码中加入一些解释说明为什么这段代码可以工作,也可以在代码注释中添加说明。目前的形式没有提供任何解释,这可能会阻碍其他社区成员理解你是如何解决/回答问题的。 - ishmaelMakitla
我只能说我发布的代码是有效的。我尝试了上面所有的解决方案,但都没有起作用。我是Java初学者,所以我无法解释为什么它有效。但是我也遇到了JLabel不更新的问题,但出于某种原因,只有我的代码在我的电脑上有效。 - Carlo Tony Daristotile

4
这将创建一个新的JLabel并设置其文本。
JLabel label = new JLabel();
label.setText("____");

您需要将此标签添加到类似于JFrame的东西中

如果您想快速简单地完成,这里是用标签制作简单窗口的代码。

import javax.swing.JFrame;
import javax.swing.JLabel;

public class App {

  public static void main(String[] args) {
    JFrame frame = new JFrame("Swing Frame");

    JLabel label = new JLabel("This is a Swing frame", JLabel.CENTER);
    label.setText("____");  // Look familiar?  <----------

    frame.add(label);

    frame.setSize(350, 200); // width=350, height=200
    frame.setVisible(true); // Display the frame
  }

}

1
public void updatemylabel(String text){

JLabel.setText("ex."+text);

//place this method inside your Jframe class extend from javax.swing.Jframe
}

如果我从主函数中调用它,我认为会出现“非静态方法无法从静态上下文Java引用”的错误。那么我应该从哪里调用这个方法呢?我有一个带有GUI和主类的基本项目...谢谢。 - BeatingBytes

1
要更新标签中的文本,您可以使用label.setText("新文本")。但是,如果没有看到代码,很难说为什么它不会更新,因为可能存在其他问题。

2
@user2511414,不需要在setText()之后调用repaint()。setText()方法会自动为您执行此操作。 - camickr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接