java monitor 用法,Java Swing - 如何使用ProgressMonitor处理进度

/*

Definitive Guide to Swing for Java 2, Second Edition

By John Zukowski

ISBN: 1-893115-78-X

Publisher: APress

*/

import java.awt.Component;

import java.awt.Container;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.ProgressMonitor;

import javax.swing.Timer;

public class Main {

static ProgressMonitor monitor;

static int progress;

static Timer timer;

static class ProgressMonitorHandler implements ActionListener {

public void actionPerformed(ActionEvent actionEvent) {

if (monitor == null)

return;

if (monitor.isCanceled()) {

System.out.println("Monitor canceled");

timer.stop();

} else {

progress += 3;

monitor.setProgress(progress);

monitor.setNote("Loaded " + progress + " files");

}

}

}

public static void main(String args[]) {

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Container contentPane = frame.getContentPane();

contentPane.setLayout(new GridLayout(0, 1));

// Define Start Button

JButton startButton = new JButton("Start");

ActionListener startActionListener = new ActionListener() {

public void actionPerformed(ActionEvent actionEvent) {

Component parent = (Component) actionEvent.getSource();

monitor = new ProgressMonitor(parent, "Loading Progress",

"Getting Started...", 0, 200);

progress = 0;

}

};

startButton.addActionListener(startActionListener);

contentPane.add(startButton);

// Define Manual Increase Button

// Pressing this button increases progress by 5

JButton increaseButton = new JButton("Manual Increase");

ActionListener increaseActionListener = new ActionListener() {

public void actionPerformed(ActionEvent actionEvent) {

if (monitor == null)

return;

if (monitor.isCanceled()) {

System.out.println("Monitor canceled");

} else {

progress += 5;

monitor.setProgress(progress);

monitor.setNote("Loaded " + progress + " files");

}

}

};

increaseButton.addActionListener(increaseActionListener);

contentPane.add(increaseButton);

// Define Automatic Increase Button

// Start Timer to increase progress by 3 every 250 ms

JButton autoIncreaseButton = new JButton("Automatic Increase");

ActionListener autoIncreaseActionListener = new ActionListener() {

public void actionPerformed(ActionEvent actionEvent) {

if (monitor != null) {

if (timer == null) {

timer = new Timer(250, new ProgressMonitorHandler());

}

timer.start();

}

}

};

autoIncreaseButton.addActionListener(autoIncreaseActionListener);

contentPane.add(autoIncreaseButton);

frame.setSize(300, 200);

frame.setVisible(true);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值