java-swing-JLabel(色彩标签):
package com.etc.jlabel;
import javax.swing.*;
/**
* JLabel 色彩标签演练
*/
public class SwingDemo {
private static void createGIU() {
// MyFrame frame = new MyFrame("color ");
// 使用优化后的 MyFrame2 测试
MyFrameYouHua frame = new MyFrameYouHua("color");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setVisible(true);
}
public static void main(String[] args) {
// new 一个接口就是new一个实现这个接口的对象,创建了一个匿名类的对象,为了实现run方法。
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createGIU();
}
});
}
}
package com.etc.jlabel;
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame {
public MyFrame(String title) throws HeadlessException {
super(title);
Container container = getContentPane();
container.setLayout(new FlowLayout());
JLabel a1 = new JLabel("1");
// 设置背景为不透明(默认透明)
a1.setOpaque(true);
// 设置背景的颜色
a1.setBackground(Color.YELLOW);
// 设置区域尺寸
a1.setPreferredSize(new Dimension(60, 30));
// 设置水平对齐
a1.setHorizontalAlignment(SwingConstants.CENTER);
JLabel a2 = new JLabel("2");
a2.setOpaque(true);
a2.setBackground(Color.BLUE);
a2.setPreferredSize(new Dimension(60, 30));
a2.setHorizontalAlignment(SwingConstants.CENTER);
JLabel a3 = new JLabel("3");
a3.setOpaque(true);
a3.setBackground(Color.GREEN);
a3.setPreferredSize(new Dimension(60, 30));
a3.setHorizontalAlignment(SwingConstants.CENTER);
JLabel a4 = new JLabel("4");
a4.setOpaque(true);
a4.setBackground(Color.RED);
a4.setPreferredSize(new Dimension(60, 30));
a4.setHorizontalAlignment(SwingConstants.CENTER);
container.add(a1);
container.add(a2);
container.add(a3);
container.add(a4);
}
}
优化处理:在MyFrame 的基础上进行优化:
package com.etc.jlabel;
import javax.swing.*;
import java.awt.*;
/**
* 在MyFrame 的基础上进行优化
*/
public class MyFrameYouHua extends JFrame {
public MyFrameYouHua(String title) throws HeadlessException {
super(title);
Container container = getContentPane();
container.setLayout(new FlowLayout());
ColorLabel a1 = new ColorLabel("1", Color.YELLOW);
ColorLabel a2 = new ColorLabel("2", Color.BLUE);
ColorLabel a3 = new ColorLabel("3", Color.GREEN);
ColorLabel a4 = new ColorLabel("4", Color.RED);
container.add(a1);
container.add(a2);
container.add(a3);
container.add(a4);
}
private static class ColorLabel extends JLabel {
public ColorLabel(String text, Color bgColor) {
super(text);
// 设置背景为不透明(默认透明)
setOpaque(true);
// 设置背景的颜色
setBackground(bgColor);
// 设置区域尺寸
setPreferredSize(new Dimension(180, 30));
// 设置水平对齐(文本居中)
setHorizontalAlignment(SwingConstants.CENTER);
}
}
}