SWING闪屏-----1

本文介绍了一个使用Java Swing实现的图片显示程序。该程序通过继承JFrame创建了一个可显示图片的窗口,并利用多线程技术不断调整窗口大小直至达到屏幕宽度。此外,程序还实现了窗口位置居中及背景颜色设置等功能。

package testpicturejava;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.JLabel;
import javax.swing.ImageIcon;


/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class PictueFrame extends JFrame implements Runnable {
    JPanel contentPane;
    JLabel jLabel1 = new JLabel();
    boolean packFrame = false;
    public PictueFrame() {
        try {
            Thread thre = new Thread(this);
            thre.start();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {

    }

    public void run() {

        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(1024, 768));
        setTitle("Frame Title");
        this.setUndecorated(true);
        this.setResizable(false);

        jLabel1.setBounds(new Rectangle(9, 9, 1024, 768));
        jLabel1.setIcon(new ImageIcon(PictueFrame.class.getResource(
                "sky.jpg")));
        contentPane.add(jLabel1);
        if (packFrame) {
            this.pack();
        } else {
            this.validate();
        }

        int height = 300;
        int width = 100;
        try {
            while (true) {
                Thread.currentThread().sleep(1);
                this.setSize(new Dimension(height, width));
                this.setBackground(Color.BLUE);
                Dimension screenSize = Toolkit.getDefaultToolkit().
                                       getScreenSize();
                Dimension frameSize = this.getSize();
                if (frameSize.height > screenSize.height) {
                    frameSize.height = screenSize.height;
                }
                if (frameSize.width > screenSize.width) {
                    frameSize.width = screenSize.width;
                    this.dispose();
                    break;
                }
                this.setLocation((screenSize.width - frameSize.width) / 2,
                                 (screenSize.height - frameSize.height) / 2);
                this.show();
                height = height + 6;
                width = width + 10;

            }
        } catch (HeadlessException ex) {
            ex.printStackTrace();
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }

    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值