展开全部
lz 你好
这个应该很简单吧
java自带的进度条组件是: JProgressBar类
就用JProgressBar的setVisible(boolean)
//true就显示、false就隐e69da5e887aa3231313335323631343130323136353331333332623965藏
变换鼠标:
用JFrame的setCursor(Cursor)方法
以下是我写的一个例子:import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;//这个UI需要jdk是1.7及之后版本
//进度条测试类
public class ProgressBar extends JFrame implements Runnable, ActionListener{
private JProgressBar jpb;
private JButton start;
private int value=0;
public ProgressBar() {
super("ProgressBar");
setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 50));
jpb = new JProgressBar();
jpb.setPreferredSize(new Dimension(280, 30));
jpb.setBorderPainted(true);
jpb.setStringPainted(true);
jpb.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
start.setSelected(true);
jpb.setString("已完成:" + value + "%");
}
});
start = new JButton("开始");
start.setPreferredSize(new Dimension(60, 40));
start.addActionListener(this);
getContentPane().add(jpb);
getContentPane().add(start);
setSize(300, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(3);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
start.setEnabled(false);//action开始的时候 开始按钮设为不可点击的状态
setCursor(Cursor.WAIT_CURSOR);//action开始的时候 设置鼠标为等待的状态
jpb.setVisible(true);//action开始的时候 进度条显示
new Thread(this).start();
}
public void run(){
for(value=1; value <= 100 ; value++){
try {
Thread.sleep((int)(Math.random() * 100 + 50));
jpb.setValue(value);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
jpb.setVisible(false);//action结束的时候 进度条隐藏
setCursor(Cursor.DEFAULT_CURSOR);//action结束的时候 设置鼠标为正常的状态
start.setEnabled(true);//action结束的时候 开始按钮设为可点击的状态
}
public static void main(String[] args) {
//设定UI 这个UI好看点儿
try {
UIManager.setLookAndFeel(new NimbusLookAndFeel());
}
catch (Exception ex) {
ex.printStackTrace();
}
new ProgressBar();
}
}
希望能帮助你哈