(练习)彩色标签
代码(版本1):
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class Demo {
public static void main(String[] args) {
MyFrame frame = new MyFrame("Demo");
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class MyFrame extends JFrame{
Container contentPane;
public MyFrame(String title) {
super(title);
contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
makeLabel("1", Color.RED);
makeLabel("2", Color.BLUE);
makeLabel("3", Color.GREEN);
makeLabel("4", Color.GRAY);
}
public void makeLabel(String text, Color color) {
JLabel label = new JLabel(text);
//设置背景为非透明
label.setOpaque(true);
//设置背景尺寸
label.setPreferredSize(new Dimension(60, 30));
//设置背景颜色
label.setBackground(color);
//设置文字水平
label.setHorizontalAlignment(SwingConstants.CENTER);
contentPane.add(label);
}
}
代码(版本2):
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class Demo2 {
public static void main(String[] args) {
MyFrame2 frame = new MyFrame2("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
}
class MyFrame2 extends JFrame{
public MyFrame2(String title) {
super(title);
Container contentPane = this.getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(new ColorfulLabel("1", Color.BLUE));
contentPane.add(new ColorfulLabel("2", Color.RED));
contentPane.add(new ColorfulLabel("3", Color.GREEN));
contentPane.add(new ColorfulLabel("4", Color.GRAY));
}
private class ColorfulLabel extends JLabel{
public ColorfulLabel(String text, Color color) {
this.setText(text);
this.setOpaque(true);
this.setHorizontalAlignment(SwingConstants.CENTER);
this.setPreferredSize(new Dimension(60, 30));
this.setBackground(color);
}
}
}
输出: