task = new Task(); task.execute(); progressBar = new JProgressBar(); progressBar.setStringPainted(true); progressBar.setString("初始化中"); progressBar.setIndeterminate(true); JPanel panel = new JPanel(); panel.add(progressBar); add(panel, BorderLayout.PAGE_START); setBorder(BorderFactory.createEmptyBorder(20, 50, 20, 50)); } private static void createAndShowGUI() { //Create and set up the window. frame=new JFrame(); frame.setUndecorated(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Create and set up the content pane. JComponent newContentPane = new CreateGUI(); newContentPane.setOpaque(true); //content panes must be opaque frame.setContentPane(newContentPane); //Display the window. frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true);
} public static void main(String[] args) { //Schedule a job for the event-dispatching thread: //creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } } }
相关的可以看API
最简单的,加载的时候,显示一张转转转的gif,哈哈,比进度条好看
缺点是加载结束时间不太好掌握(可以自己设置),尽量跟你要跳转的那页出来时间保持一致吧。
你看能用不? <!--
var ie5 = (document.all && document.getElementsByTagName);
var step = 0;
function setSB(v, el, inforEl, message) {
if (ie5 || document.readyState == "complete") {
filterEl = el.children[0];
valueEl = el.children[1]; if (filterEl.style.pixelWidth > 0) {
var filterBackup = filterEl.style.filter;
filterEl.style.filter = "";
filterEl.style.filter = filterBackup;
}filterEl.style.width = v + "%";
valueEl.innerText = v + "%";
inforEl.innerText = message;
}
}
function setSBByStep(v, el, inforEl, message) {
if (ie5 || document.readyState == "complete") {
step = step + v;
filterEl = el.children[0];
valueEl = el.children[1];if (filterEl.style.pixelWidth > 0) {
var filterBackup = filterEl.style.filter;
filterEl.style.filter = "";
filterEl.style.filter = filterBackup;
}
filterEl.style.width = step + "%";
valueEl.innerText = step + "%"
inforEl.innerText = message;
}
}
function fakeProgress(v, el) {
if (v >= 101)
location.href="http://www.×××.com";
else {
setSB(v, el, infor, "正在加载... 请稍候");
window.setTimeout("fakeProgress(" + (v + 1) + ", document.all['" + el.id + "'])", 60);
}
}
//--><BODY onload="fakeProgress(0,sb)" topmargin=100 bgcolor="#999999">
<br><br><br><br><br><br><br><br>
<!-- Status Bar Starts -->
<div align=center>
<DIV id=sb
style="BORDER-RIGHT: white 0px inset; BORDER-TOP: white 0px inset; BACKGROUND: #cccccc; BORDER-LEFT: white 0px inset; WIDTH: 200px; BORDER-BOTTOM: white 0px inset; HEIGHT: 20px; TEXT-ALIGN: left">
<DIV id=sbChild1
style="FILTER: Alpha(Opacity=0, FinishOpacity=80, Style=1, StartX=0, StartY=0, FinishX=100, FinishY=0); WIDTH: 0%; POSITION: absolute; HEIGHT: 20px">
<DIV
style="FONT-SIZE: 1px;BACKGROUND:#ffffff; WIDTH: 100%; HEIGHT: 100%"></DIV></DIV>
<DIV
style="FONT-SIZE:11px; WIDTH: 100%; COLOR:#000000; FONT-FAMILY:verdana; POSITION: absolute; TEXT-ALIGN: center"></DIV></DIV>
<!-- Status Bar Ends -->
<br>
<DIV id=infor
style=" FONT-SIZE:11px; WIDTH: 100%; COLOR:#000000; FONT-FAMILY:verdana; POSITION: relative; TEXT-ALIGN: center">
</DIV>
</div>
</BODY>
jpb.setMaximum(100);比如你正在复制一个文件,则设一个值用来表示复制的量,假设为 currentValue,这个量的值为已复制的值除以总的文件的值,即文件的大小。然后设置进度条的值 jpb.setValue(currentValue) 这样就ok了。记得把jpb 添加到面板里去就可以了。希望对你有用
看这篇
Java Splash Screen可以同程序交互
http://blog.sina.com.cn
/s/blog_4b6047bc010009f0.html
楼上的也是从WilliamChen的博客摘来的啊,这里有WilliamChen的更贴切的一个Demo:
http://blog.sina.com.cn/s/blog_4b6047bc010007so.html
要是进行操作的话还是JProgressBar
网上有例子
private JProgressBar progressBar=null;
private static JFrame frame = null;
class Task extends SwingWorker<void, Void>{
@Override
protected void doInBackground() throws Exception {
// TODO Auto-generated method stub
/**
后台计算
*/
}
protected void done() {
//前台代码
}
public CreateGUI(){
task = new Task();
task.execute();
progressBar = new JProgressBar();
progressBar.setStringPainted(true);
progressBar.setString("初始化中");
progressBar.setIndeterminate(true);
JPanel panel = new JPanel();
panel.add(progressBar);
add(panel, BorderLayout.PAGE_START);
setBorder(BorderFactory.createEmptyBorder(20, 50, 20, 50));
}
private static void createAndShowGUI() {
//Create and set up the window.
frame=new JFrame();
frame.setUndecorated(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Create and set up the content pane.
JComponent newContentPane = new CreateGUI();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane); //Display the window.
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
}