Как сбросить JLabel - PullRequest
       8

Как сбросить JLabel

2 голосов
/ 26 марта 2012

Я пытаюсь сбросить массив JLabels. В верхней части ярлыков есть изображения, поэтому при нажатии кнопки метки должны быть сброшены. Я пытался сделать это так

 for(int i=0; i<desks.length; i++)
  {
    desks[i].setText("");
    rightPanel.add(desks[i]);
  }

так что, если у кого-то есть идея, было бы замечательно.

Ответы [ 3 ]

6 голосов
/ 26 марта 2012

Нет необходимости повторно добавлять их на панель.Этого должно быть достаточно, чтобы просто установить текст в пустую строку.

Если этого не происходит, убедитесь, что вы делаете это в потоке диспетчеризации событий, например:

SwingUtilities.invokeLater(new Runnable() {
   public void run() {
      desks[i].setText("");
   }
});
5 голосов
/ 26 марта 2012

Вам не нужно снова добавлять метки на панель контента, чтобы сбросить их текст. Просто сделайте следующее, чтобы очистить текст метки:

 for(int i=0; i<desks.length; i++)
 {
    desks[i].setText("");
 }
4 голосов
/ 26 марта 2012

это один из возможных способов

int n = panel.getComponentCount();
if (n > 0) {
    Component[] components = panel.getComponents();
    for (int i = 0; i < components.length; i++) {
         if (components[i] instanceof JLabel) {
             JLabel label = (JLabel) components[i];
             label.setText("");
         } 
    }
}
...