2014-01-30 28 views
0

我想知道是否有方法用新文本覆盖放入JLabel的文本。是否有覆盖JLabel内容的方法

我目前刚刚创建新标签的代码并未取代以前制作的标签。

关于我的代码,我想根据哪个按钮被按下,从每个字符串数组中更改JLabel中保存的文本。

已上传我的动作侦听器的代码。

@Override 
public void actionPerformed(ActionEvent event) { 
    ImageIcon gws = new ImageIcon("src\\myGui\\sharke.jpg"); 
    ImageIcon gib = new ImageIcon("src\\myGui\\gibbone.jpg"); 
    ImageIcon croc = new ImageIcon("src\\myGui\\croce.jpg"); 
    ImageIcon cat = new ImageIcon("src\\myGui\\cheetahe.jpg"); 
    String gw[] = {"Shark", "fast", "water", "sea", "a", "b"}; 
    String gbn[] = {"Gibbon", "climb", "tree", "grass", "a", "b"}; 
    String crc[] = {"Croc", "scale", "teeth", "river", "a", "b"}; 
    String cht[] = {"Cheetah", "run", "fur", "sand", "a", "b"}; 
    for (int i = 0; i < field1.length; i++) { 
     field1[i] = new JTextField(i); 
     panel6.add(field1[i]); 
    } 

    if (event.getSource() == quit) { 
     System.exit(0); 
    } else if (event.getSource() == reset) { 
     pic1.setIcon(null); 
     pic1.setBorder(null); 
    } else if (event.getActionCommand().equalsIgnoreCase("shark")) { 
     pic1.setIcon(gws); 
     pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.blue)); 
     for (int i = 0; i < field1.length; i++) { 
      field1[i] = new JTextField(gw[i]); 
      panel6.add(field1[i]); 
     } 
    } else if (event.getActionCommand().equalsIgnoreCase("gibbon")) { 
     pic1.setIcon(gib); 
     pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.orange)); 

    } else if (event.getActionCommand().equalsIgnoreCase("crocodile")) { 
     pic1.setIcon(croc); 
     pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.green)); 
    } else if (event.getActionCommand().equalsIgnoreCase("cheetah")) { 
     pic1.setIcon(cat); 
     pic1.setBorder(BorderFactory.createEtchedBorder(Color.black, Color.yellow)); 
    } 
} 

回答

2

JLabel.setText()是你在找什么

+0

感谢您的答复。这似乎并不适用于字符串数组,但是,只使用单个字符串,这正是我试图用JLables填充的。你有什么其他的建议? – eggman