java jmenu 点击事件_Java Swing - 如何使用MenuKeyListener处理JMenuItem事件...

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import javax.swing.DefaultListModel;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JList;

import javax.swing.JProgressBar;

import javax.swing.JScrollPane;

public class Main extends JFrame implements ActionListener {

private final JButton startButton, stopButton;

private JScrollPane scrollPane = new JScrollPane();

private JList listBox = null;

private DefaultListModel listModel = new DefaultListModel();

private final JProgressBar progressBar;

private mySwingWorker swingWorker;

public Main() {

super();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

getContentPane().setLayout(new GridLayout(4, 1));

startButton = makeButton("Start");

stopButton = makeButton("Stop");

stopButton.setEnabled(false);

progressBar = makeProgressBar(0, 99);

listBox = new JList(listModel);

scrollPane.setViewportView(listBox);

add(scrollPane);

pack();

setVisible(true);

}

private class mySwingWorker extends

javax.swing.SwingWorker, Integer> {

@Override

protected ArrayList doInBackground() {

if (javax.swing.SwingUtilities.isEventDispatchThread()) {

System.out.println("javax.swing.SwingUtilities.isEventDispatchThread() returned true.");

}

ArrayList list = new ArrayList();

for (int i = 0; i < 100; i++) {

try {

Thread.sleep(1000);

} catch (Exception e) {

e.printStackTrace();

}

if (isCancelled()) {

System.out.println("SwingWorker - isCancelled");

return list;

}

publish(new Integer(i));

list.add(i);

}

return list;

}

@Override

protected void process(java.util.List progressList) {

if (!javax.swing.SwingUtilities.isEventDispatchThread()) {

System.out.println("javax.swing.SwingUtilities.isEventDispatchThread() + returned false.");

}

Integer percentComplete = progressList.get(progressList.size() - 1);

progressBar.setValue(percentComplete.intValue());

}

@Override

protected void done() {

if (!javax.swing.SwingUtilities.isEventDispatchThread()) {

System.out.println("javax.swing.SwingUtilities.isEventDispatchThread() + returned false.");

}

try {

ArrayList results = get();

for (Integer i : results) {

listModel.addElement(i.toString());

}

} catch (Exception e) {

System.out.println("Caught an exception: " + e);

}

startButton();

}

}

private JButton makeButton(String caption) {

JButton b = new JButton(caption);

b.setActionCommand(caption);

b.addActionListener(this);

getContentPane().add(b);

return b;

}

private JProgressBar makeProgressBar(int min, int max) {

JProgressBar progressBar1 = new JProgressBar();

progressBar1.setMinimum(min);

progressBar1.setMaximum(max);

progressBar1.setStringPainted(true);

progressBar1.setBorderPainted(true);

getContentPane().add(progressBar1);

return progressBar1;

}

private void startButton() {

startButton.setEnabled(true);

stopButton.setEnabled(false);

}

@Override

public void actionPerformed(ActionEvent e) {

if ("Start" == null ? e.getActionCommand() == null : "Start".equals(e

.getActionCommand())) {

startButton.setEnabled(false);

stopButton.setEnabled(true);

(swingWorker = new mySwingWorker()).execute();

} else if ("Stop" == null ? e.getActionCommand() == null : "Stop".equals(e

.getActionCommand())) {

startButton.setEnabled(true);

stopButton.setEnabled(false);

swingWorker.cancel(true);

swingWorker = null;

}

}

public static void main(String[] args) {

new Main();

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值