JAVA怎么自己绘制进度条样式?
2个回答
展开全部
package com.test;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;
/**
* 程序启动模拟进度条
* 配置操作:
* 1、更换url的test图片。图片的路径和.java文件一级
* 2、showFrame里,new出下一个JFrame
* 3、main方法里的new可以带到上一个JFrame
* @author Administrator
*
*/
public class ProgrammStart extends JWindow implements Runnable {
Thread splashThread; //进度条更新线程
JProgressBar progress; //进度条
public ProgrammStart() {
Container container=getContentPane(); //得到容器
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); //设置光标
URL url = getClass().getResource("test.jpg"); //图片的位置
if(url != null){
container.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER); //增加图片
}
progress = new JProgressBar(1,100); //实例化进度条
progress.setStringPainted(true); //描绘文字
progress.setString("程序加载中,请稍候......"); //设置显示文字
progress.setBackground(Color.white); //设置背景色
container.add(progress,BorderLayout.SOUTH); //增加进度条到容器上
Dimension screen = getToolkit().getScreenSize(); //得到屏幕尺寸
pack(); //窗口适应组件尺寸
setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2); //设置窗口位置
}
public void start(){
this.toFront(); //窗口前端显示
splashThread=new Thread(this); //实例化线程
splashThread.start(); //开始运行线程
}
public void run(){
setVisible(true); //显示窗口
try {
for (int i=0;i<100;i++){
Thread.sleep(100); //线程休眠
progress.setValue(progress.getValue()+1); //设置进度条值
}
}
catch (Exception ex) {
ex.printStackTrace();
}
dispose(); //释放窗口
showFrame(); //运行主程序
}
static void showFrame(){
//实例化JFrame对象
}
public static void main(String[] args) {
new ProgrammStart().start();
}
}
2015-05-21
展开全部
使用一个JLabel ,不要文字,覆盖paint,自己完全去绘制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询