gpt4 book ai didi

java - 一次向所有显示器发送文本?

转载 作者:行者123 更新时间:2023-11-29 06:35:48 25 4
gpt4 key购买 nike

我有一些 JLabels 用于我的更新程序,除了文本之外,一切都运行顺利。

文本都是杂乱无章的,看起来像是一次显示所有内容。我已经尝试将每个文本设置为它自己的标签,并将调用该方法时不相关的标签设置为不透明。但是我得到空指针异常。我也尝试过对我的 JFrame 进行分层,但是它摆脱了我的 JProgrssbar?

这是我的代码:

public static void displayText(int Stage) {
String txt = "";
if (Stage == 1) {
txt = "Checking Cache...";
}
if (Stage == 2) {
txt = "Downloading Cache...";
}
if (Stage == 3) {
txt = "Cache Download Complete!";
}
if (Stage == 4) {
txt = "Unpacking Files...";
}
if (Stage == 5) {
txt = "Launching Client!";
}
lbl = new JLabel();
lbl.setText(txt);
lbl.setBounds(137, 11, 200, 14);
frame.getContentPane().add(lbl);
}

我试过用几种不同的方式重新格式化它,但仍然做同样的事情...

它正在做的一个例子: enter image description here

最佳答案

您每次都在创建一个新标签并将其放在旧标签之上。在类(class)范围内的某处声明标签(更具描述性的名称也很好)。然后,在您的方法中,仅调用 lbl.setText(txt)。这将使用更新后的文本更新预先存在的标签。

它应该看起来像这样:

public class yourGUI {
private JLabel progressLabel;

public static void main(String[] args) {
progressLabel = new JLabel();
progressLabel.setBounds(137, 11, 200, 14);
frame.getContentPane().add(progressLabel);
}

public static void displayText(int Stage) {
String txt = "";
if (Stage == 1) {
txt = "Checking Cache...";
} else if (Stage == 2) {
txt = "Downloading Cache...";
} else if (Stage == 3) {
txt = "Cache Download Complete!";
} else if (Stage == 4) {
txt = "Unpacking Files...";
} else { //assuming (Stage == 5), this is up to your discretion
txt = "Launching Client!";
}
progressLabel.setText(txt);
}
}

此外,无需每次都检查每个 if 语句。

关于java - 一次向所有显示器发送文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959367/

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