java动态显示JLabel

java动态显示JLabel,java,swing,dynamic,jbutton,jlabel,Java,Swing,Dynamic,Jbutton,Jlabel,我有一个钮扣。如果单击此按钮,将出现一个弹出窗口。弹出窗口要求我写一个单词。如果我写一个单词6个字母,会出现6个jlabel,但如果我输入另一个较短的单词,jlabel不会消失 我想我的JLabel可能会随着一个较短的单词而减少,但我不知道:( 谢谢你的大力帮助 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { //

我有一个钮扣。如果单击此按钮,将出现一个弹出窗口。弹出窗口要求我写一个单词。如果我写一个单词6个字母,会出现6个jlabel,但如果我输入另一个较短的单词,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);
    }

}  
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
//按钮1字
控制器c=新控制器();
试一试{
最终JFrame弹出窗口=新JFrame();
//显示弹出窗口
word=JOptionPane.showInputDialog(弹出“输入一个单词”,null);
//控制单词的长度
c、 controleW(word);
//显示jlabel字长
keyNumber.setText(String.valueOf(word.length());
//JLabels根据字长显示
整数像素=50;
for(int i=0;i
我的班级控制单词的长度

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;
}
公共字符串控件ew(字符串字){
布尔标志=假;
最终JFrame弹出窗口=新JFrame();
while(flag==false){

如果(word.length()您总是在方法中添加标签,而从不删除任何标签,那么运行两次代码确实会添加两次标签。要修复它,您只需添加一个
removeAll()在jbutton1Action中,在添加任何标签之前执行。

您总是在方法中添加标签,从不删除任何标签,因此运行两次代码确实会添加两次标签。要修复此问题,只需添加一个
removeAll()在jbutton1Action中,在添加任何标签之前执行。

您总是在方法中添加标签,从不删除任何标签,因此运行两次代码确实会添加两次标签。要修复此问题,只需添加一个
removeAll()在jbutton1Action中,在添加任何标签之前执行。

您总是在方法中添加标签,从不删除任何标签,因此运行两次代码确实会添加两次标签。要修复此问题,只需添加一个
removeAll()
在jbutton1中添加任何标签之前执行操作。这确保删除以前添加的任何组件。

看起来您希望
controleW
返回本地
word
(然后将其结果分配给上面代码中的
word
)。看起来您希望
controleW
返回本地
word
(然后将其结果分配给上面代码中的
word
)。看起来您希望
controleW
返回本地
word
(然后将其结果分配给上面代码中的
word
)。看起来您希望
controleW
返回本地
word
(然后将其结果分配给上面代码中的
word
)。