在一个JPanel addN个JLabel。请问有什么方法 一次设置所有JLabel的前景色么?是不用数组。 help :)
------最佳解决方案--------------------------------------------------------
可以使用UIManager来设置
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
public class Test {
public static void main(String[] args) {
UIManager.put("Label.foreground", Color.BLUE);
JFrame frame = new JFrame("Label");
JLabel label1 = new JLabel("Label One");
JLabel label2 = new JLabel("Label Two");
frame.getContentPane().add(label1);
frame.getContentPane().add(label2, BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
------其他解决方案--------------------------------------------------------
楼上正解!
UIManager.put("Label.foreground", Color.BLUE);设置必须在系统界面初始化之前
但是通过UIManager来设置,会影响到系统中所有的Label控件,影响其他模块、子系统的显示。
另一种是自己封装Label,在自己的系统中new 封装后的Label子类。
------其他解决方案--------------------------------------------------------
private JLabel makeLabel(String text){
JLabel label = new JLabel(text);
label.setForeground(Color.BLUE);
return label;
}
JPanel panel = ...;
panel.add(makeLabel("Hello"));
panel.add(makeLabel("Goodbye"));
------其他解决方案--------------------------------------------------------
该回复于2011-01-17 13:44:37被版主删除
------其他解决方案--------------------------------------------------------
谢谢各位大牛~!
------其他解决方案--------------------------------------------------------
我来总结一下:
天意如刀:统一设置成一种颜色,以一代万
Arthur(亚瑟王)和 逸飞的更灵活,可以分别设置
小弟学习了!
------其他解决方案--------------------------------------------------------
label.setForeground(Color.BLUE);
应该是setBackground 吧?