今天想做一个启动界面,但是JFrame有标题栏,Jwindow在任务栏看不到图标。就索性用JFrame实现JWindow的效果,来实现启动界面。具体的代码如下:
package testJWindow;
import java.awt.BorderLayout;
import java.awt.Color;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JRootPane;
public class test extends JFrame{
JProgressBar progressBar;
int value=0;
public static void main(String[] args){
new test();
}
public test(){
JPanel contentPanel = new JPanel();
progressBar = new JProgressBar(0,5);
ImageIcon image=new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\icon.jpg");
JLabel label = new JLabel(image);
label.setBounds(0,0,284,177);
this.getLayeredPane().add(label, Integer.MIN_VALUE);
contentPanel.setOpaque(false);
contentPanel.setLayout(new BorderLayout());
setContentPane(contentPanel);
progressBar.setValue(0);
progressBar.setBackground(Color.WHITE);
progressBar.setForeground(Color.BLACK);
contentPanel.add(progressBar,BorderLayout.SOUTH);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
progressBar.setValue(value++);
if (progressBar.getValue() >= 5) {
System.exit(0);
}
}
}, 0, 1000);
this.setUndecorated(true);//禁用或启用窗口装饰,如果为true,则为没有启动窗口装饰,只有在窗口不可见时才能调用,否则会抛出异常
this.setVisible(true);
this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);//设置不使用窗口装饰
this.setBounds(400, 300, 284, 177);
}
}
其中关键部分的代码,在其中已经注释出。