2014-01-30 3 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

Спасибо за ответ. Это, похоже, не работает с массивами строк, но только с одиночными Strings, что я и пытаюсь заполнить JLables. Есть ли у вас другие предложения? – eggman

Смежные вопросы