【综合练习2】霓虹灯
创建一个小窗体,显示“流·浪·地·球”字样,同时让字体样式、字体颜色以及背景板颜色每3秒发生一次变化。
/*【综合练习2】霓虹灯
* 创建一个小窗体,显示“流·浪·地·球”字样,同时让字体样式、字体颜色
* 以及背景板颜色每3秒发生一次变化。
*
* */
package dxc;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import java.awt.Color;
import java.awt.Font;
import java.awt.BorderLayout;
public class Zhlx2 extends JFrame{
private JPanel contentPane;
private JLabel lblWords;
public static void main(String[] args) {
// TODO Auto-generated method stub
Zhlx2 mrsoftFrame = new Zhlx2();
mrsoftFrame.setVisible(true);
}
public Zhlx2() {
setResizable(false);
setTitle("霓虹灯之流浪地球");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 350, 150);
// 内容面板
contentPane = new JPanel();
setContentPane(contentPane);
contentPane.setBackground(Color.WHITE);
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
// 文字标签
lblWords = new JLabel("流 · 浪 · 地 · 球");
contentPane.add(lblWords,BorderLayout.CENTER);
lblWords.setFont(new Font("华文行楷", Font.PLAIN, 28));
lblWords.setHorizontalAlignment(SwingConstants.CENTER);
// 创建背景色线程子类,字体样式子类
Thread colorThread = new BackgroundColor2(contentPane);
Thread styleThread = new WordsStyle2(lblWords);
colorThread.start();
styleThread.start();
}
}
class BackgroundColor2 extends Thread{
private JPanel contentPane;
public BackgroundColor2(JPanel contentPane) {
this.contentPane = contentPane;
}
@Override
public void run() {
while(true) {
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
contentPane.setBackground(Color.YELLOW);
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
contentPane.setBackground(Color.CYAN);
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
contentPane.setBackground(Color.MAGENTA);
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
contentPane.setBackground(Color.WHITE);
}
}
}
class WordsStyle2 extends Thread{
private JLabel lblWords;
public WordsStyle2(JLabel lblWords) {
this.lblWords = lblWords;
}
@Override
public void run() {
while(true) {
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
lblWords.setFont(new Font("方正舒体",Font.BOLD,28));
lblWords.setForeground(Color.BLUE);
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
lblWords.setFont(new Font("华文新魏",Font.ITALIC|Font.BOLD,28));
lblWords.setForeground(Color.BLUE);
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
lblWords.setFont(new Font("华文隶书",Font.ITALIC,28));
lblWords.setForeground(Color.BLUE);
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
lblWords.setFont(new Font("华文行楷",Font.PLAIN,28));
lblWords.setForeground(Color.BLUE);
}
}
}