Код сокращения для изменения фона и цвета текста для Jlabel, на который нажали (создание вкладок JLabel) - Netbeans

У меня есть 7 Jlabels в моем JFrame, и я хочу добиться нажатия на 1 JLabel, установив черный фон и белый цвет текста, оставив другие фоны Jlabels белым и черным текстом с минимально возможным кодом. Мне удалось это сделать, но результатом были куски кода для каждого события щелчка мыши.

Пример моей попытки:

private void Label1MouseClicked(java.awt.event.MouseEvent evt) {    

    //Highlighted

    Label1.setBackground(new java.awt.Color(0, 0, 0, 255));
    Label1.setForeground(new java.awt.Color(255, 255, 255, 255));

    //Other Jlabels background and colour resetting

    Label2.setBackground(new java.awt.Color(255, 255, 255, 255));
    Label2.setForeground(new java.awt.Color(0, 0, 0, 255));
    Label3.setBackground(new java.awt.Color(255, 255, 255, 255));
    Label3.setForeground(new java.awt.Color(0, 0, 0, 255));
    Label4.setBackground(new java.awt.Color(255, 255, 255, 255));
    Label4.setForeground(new java.awt.Color(0, 0, 0, 255));
    Label5.setBackground(new java.awt.Color(255, 255, 255, 255));
    Label5.setForeground(new java.awt.Color(0, 0, 0, 255));
    Label6.setBackground(new java.awt.Color(255, 255, 255, 255));
    Label6.setForeground(new java.awt.Color(0, 0, 0, 255));
    Label7.setBackground(new java.awt.Color(255, 255, 255, 255));
    Label7.setForeground(new java.awt.Color(0, 0, 0, 255));

} 

Я ввел этот код для каждого события щелчка мыши JLabel, чтобы выделенная метка имела черный фон и белый текст.

Как я могу сократить этот код?

Заранее спасибо.


person Matt J    schedule 02.06.2015    source источник


Ответы (1)


создать массив меток

JLabel labels[] = new JLabel[6];

и инициализировать ярлыки и добавить в контейнер

lables[0]=new JLabel("lable 1");

затем используйте цикл для набора цветов

for(int i=0;i<lables.lenght;i++){
   lables[i].setBackground(new java.awt.Color(0, 0, 0, 255));
   lables[i].setForeground(new java.awt.Color(255, 255, 255, 255));
}

вы также можете импортировать класс Color

 import java.awt.Color; 

тогда вы можете использовать

lables[i].setBackground(Color.white);
person Madhawa Priyashantha    schedule 02.06.2015