我有一个按钮。如果单击此按钮,则会出现一个弹出窗口。弹出窗口让我写一个字。如果我写一个单词6个字母,就会出现6个jlabels,但是如果我输入另一个单词,那么JLabel就不会消失
我希望我的JLabel可能会根据较短的单词减少,但我不知道:(
谢谢你的帮助!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;
}
答案 0 :(得分:3)
您总是在方法中添加标签,从不删除任何标签,因此运行代码两次确实会添加两次标签。要解决此问题,您只需在添加任何标签之前在jButton1ActionPerformed中添加removeAll();
即可。这可确保删除任何以前添加的组件。