缩短用于更改Jlabel的背景和文本颜色的代码(制作JLabel选项卡) - Netbeans

时间:2015-06-02 15:25:22

标签: java jlabel netbeans-8 mouseclick-event

我的JFrame中有7个Jlabel,我希望点击1 JLabel,将背景设置为黑色,将文本颜色设置为白色,同时将其他Jlabels背景白色和黑色文本保留为尽可能少的代码。我设法做到了,但结果是每个Mouse Click事件的代码块。

我的尝试示例:

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鼠标点击事件输入了该代码,使突出显示的标签具有黑色背景和白色文本。

如何缩短此代码?

提前致谢。

1 个答案:

答案 0 :(得分:0)

创建一个标签数组

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);