我的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鼠标点击事件输入了该代码,使突出显示的标签具有黑色背景和白色文本。
如何缩短此代码?
提前致谢。
答案 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);