如何跳出for循环 ?java中的 用eclipse编译的

我之前在程序中写了一个按钮,是点击按钮循环1000次,调用openclaimreleaseclose这个几个方法,添加另外一个按钮,点击这个按钮就停止循环!希望哪位大侠可... 我之前在程序中写了一个按钮,是点击按钮循环1000次,调用open claim release close这个几个方法,添加另外一个按钮,点击这个按钮就停止循环!希望哪位大侠可以帮帮忙!
之前的按钮监听代码如下:
// 循环调用 open claim release close
cycleButton = new JButton("Cycle");
cycleButton.setActionCommand("cycle");
cycleButton.addActionListener(

new ActionListener() {
public void actionPerformed(ActionEvent e) {
for(int totaltimes=0;totaltimes<1000;totaltimes++){
try {
doOpen();

} catch (JposException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();

}

try {
doClaim();

} catch (JposException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();

}

try {
msr.release();
} catch (JposException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
msr.close();
} catch (JposException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}

}
}
);
之后我又写了另一按钮,就是点击这个按钮停止循环
stopcycleButton = new JButton("StopCycle");
stopcycleButton.setActionCommand("stopcycle");
stopcycleButton.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

}

});

请问各位高手,这个代码里填什么语句
可以点击按钮终止循环啊!感激不尽!!
还有一个问题是,再添加一个checkbox
在里面显示循环的次数,应该如何添加?
代码是什么!!谢谢了!!
展开
 我来答
百度网友b257ef4
2012-07-11 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:61
采纳率:0%
帮助的人:72.5万
展开全部

给你个示例代码运行下:

核心是开启个新的线程,在给计数给界面赋值,新的线程通过一个变量isBegin进行控制,如果在按钮监听中直接写方法的话会导致界面阻塞,无法点击停止循环按钮.

@Override

public void run() {

int i = 0;

while (isBegin) {

this.label.setText(Integer.toString(++i) + "次");

this.checkBox.setText(Integer.toString(++i) + "次");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}


package com.cc.test;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.EventQueue;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Test implements ActionListener, Runnable {

private JLabel label = null;

private JTextField textField = null;

private JCheckBox checkBox = null;

private boolean isBegin = false;

private static final String START = "start";

private static final String STOP = "stop";

public static void main(String[] args) {

JFrame frame = new JFrame();

frame.getContentPane().setLayout(new BorderLayout());

JPanel panel = new Test().getTextBtnPanel();

frame.getContentPane().add(panel, BorderLayout.CENTER);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(new Dimension(600, 450));

frame.setVisible(true);

}

private JPanel getTextBtnPanel() {

JPanel panel = new JPanel();

panel.setLayout(new BorderLayout());

panel.add(this.getTextField(), BorderLayout.CENTER);

panel.add(this.getNorthPanel(), BorderLayout.SOUTH);

return panel;

}

private JTextField getTextField() {

this.textField = new JTextField();

this.textField.setPreferredSize(new Dimension(200, 40));

return this.textField;

}

private JPanel getNorthPanel() {

JPanel panel = new JPanel();

panel.setLayout(new FlowLayout(FlowLayout.LEFT));

panel.add(this.getStartBtn());

panel.add(this.getStopButton());

panel.add(this.getLabel());

panel.add(this.getCheckBox());

return panel;

}

private JLabel getLabel() {

this.label = new JLabel();

return label;

}

private JCheckBox getCheckBox() {

this.checkBox = new JCheckBox();

this.checkBox.setForeground(Color.RED);

return this.checkBox;

}

private JButton getStartBtn() {

JButton btn = new JButton("开始循环");

btn.setActionCommand(Test.START);

btn.addActionListener(this);

return btn;

}

private JButton getStopButton() {

JButton btn = new JButton("停止循环");

btn.setActionCommand(Test.STOP);

btn.addActionListener(this);

return btn;

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals(START)) {

this.isBegin = true;

new Thread(this).start();

}

if (e.getActionCommand().equals(STOP)) {

this.isBegin = false;

}

}

@Override

public void run() {

int i = 0;

while (isBegin) {

this.label.setText(Integer.toString(++i) + "次");

this.checkBox.setText(Integer.toString(++i) + "次");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

3i3o
2012-07-11
知道答主
回答量:14
采纳率:0%
帮助的人:4.4万
展开全部
设置一个Boolean类型的变量,在循环里里面写if(变量名){break;},
点击按钮控制这个变量的布尔值就行了。
追问
具体加在哪 ,怎么写啊,谢谢了!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duankesong
2012-07-11 · TA获得超过446个赞
知道小有建树答主
回答量:770
采纳率:0%
帮助的人:382万
展开全部
return;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
娱英阿开生7959
2012-07-11
知道答主
回答量:17
采纳率:0%
帮助的人:1.8万
展开全部
你代码贴出来吧
追问
已经贴出了了啊
追答
不好意思,刚刚走神。Boolean b = true;……
for(int totaltimes=0;totaltimes<1000;totaltimes++){
if(b){
try {

doOpen();

} catch (JposException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();

}
}
……

public void actionPerformed(ActionEvent e) {
b=false; }

试试看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式