gpt4 book ai didi

java动态显示JLabel

转载 作者:行者123 更新时间:2023-12-01 22:58:55 25 4
gpt4 key购买 nike

我有一个按钮。如果我单击此按钮,则会出现一个弹出窗口。弹出窗口要求我写一个字。如果我写一个单词 6 个字母,则会出现 6 个 jlabel,但如果我输入另一个较短的单词,JLabels 不会消失

我希望我的 JLabels 可以根据较短的单词而减少,但我不知道:(

感谢您的大力帮助!

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
//BUTTON 1 WORD
Controller c = new Controller();
try {
final JFrame popup = new JFrame();

//display popup
word = JOptionPane.showInputDialog(popup, "Enter one word", null);
//control the length of the word
c.controleW(word);

//display jlabel lenght of word
keyNumber.setText(String.valueOf(word.length()));


//JLabels displays depending on the word length
int pixels = 50;
for (int i = 0; i < word.length(); i++) {
label = new JLabel("_");
label.setBounds(pixels, 200, 30, 30);
add(label);
label.repaint();
pixels += 20;
}

} catch (Exception e) {
System.out.println(e);
}

}

还有我的类来控制单词的长度

public String controleW(String word) {
boolean flag = false;
final JFrame popup = new JFrame();

while (flag == false) {
if (word.length() <= 3) {
word = JOptionPane.showInputDialog(popup, "Enter one word", null);
} else {
flag = true;
}
};
return null;
}

最佳答案

您总是在方法中添加标签,从不删除任何标签,因此运行代码两次确实会添加标签两次。要修复此问题,您只需在添加任何标签之前在 jButton1ActionPerformed 中添加 removeAll(); 即可。这可确保删除任何先前添加的组件。

关于java动态显示JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23641438/

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