问答题

请完成下列Java程序:创建一个进度条,可以控制其开始和暂停。要求进度条与线程关联,由线程控制,点击开始按钮开始进度条的滚动,点击停止按钮,暂停,继续点击开始按钮则继续进行。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class ex15_2 extends JPanel
ThreadProg thProgress;
JProgressBar jPb;//声明一个进程条对象
static JFrame jf;
public ex15_2()
setLayout(new BorderLayout());
jPb=new JProgressBar();
add(jpb,"Center");
JPanel btnPanel=new JPanel();
JButton btnStart=new JButton("开始");
btnPanel.add(btnStart);
btnStart.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent ae)
__________;

);
JButton btnStop=new JButton("停止");
btnPanel.add(btnStop);
btnStop.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent ae)
__________;

);
add(btnPanel,BorderLayout.SOUTH);

public void startProgress()
if(thProgress==null||!thProgress.isAlive())
thProgress=new ThreadProg(jpb);
thProgress.start();


public void stopProgress()
thProgress.setStop(true);

public static VOid main(String args[])
jf=new JPrame("ex15_2");
ex15_2 obj15_2=new ex15_2();
jf.getContentPane().add("Center",obj15_2);
jf.setSize(250,80);
jf.addWindowListener(new WindowAdapter()
pubhc void windowClosing(WindowEvent we)
System.exit(0);

);
jf.setVisible(true);


class ThreadProg extends Thread
private JProgressBar jpb;
private boolean bStop=false;
private boolean bAlive=false;
pubhc ThreadProg(JProgressBar jpb)
this.jpb=jpb;

public VOid setStop(boolean b)
bStop=b;

public void run()
int min=0;
int max=60;
jpb.setMinimum(min);
jpb.setMaximum(max);
jpb.setValue(min);
for(int x=min;x<=max;x++)
if(bStop)
break;
else
jpb.setValue(x);
try
Thread.sleep(150);
catch(InterruptedException e)



bAlive=false;

【参考答案】

startProgress()
stopProgress()
热门 试题

问答题
下面是一个Applet程序,其功能是在窗口中绘制3个半径递增的圆,并用RGB三原色对这 3个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java.applet.*; import java.awt.*; import java.awt.*; * <applet code= ex15_3.class width=800 height=400> < applet> * class CanvasCircle extends Canvas private Color cCircle; public CanvasCircle(Color c) cCircle=c; public void paint(Graphics g) int dimCircle,xCircle,yCircle; Dimension sizeCurrent=getSize(); if(sizeCurrent.width>sizeCurrent.height) dimCircle=sizeCurrent.width; else dimCircle=sizeCurrent.height; g.setColor(cCircle); xCircle=(sizeCurrent.heighe-dimCircle) 2; yCircle=(sizeCurrent.width-dimCircle) 2; g.fillOval(xCircle,yCircle,dimCircle,dimCircle); public class exl5_3 extends Applet public void init() GridBagLayout gbl=new GddBagLayout(); GridBagConstraints gbc=new CridBagConstraints(); CanvasCircle circleNew; setLayout(gbl); gbc.weightx=1.0; gbc.weighty=1.0; gbc.fill=GridBagConstraints.BOTH; circleNew=new CanvasCircle(Color.red); gbl.setConstraints(circleNew,gbc); add(circleNeW); gbc.weightx=1.5; gbc.weighty=1.5; circleNew=new CanvasCircle(Color.green); gbl.sctConstraints(eircleNew,gbc); add(circleNew); gbc.weightx=2.0; gbc.weighty=2.0; circleNew=new CanvasCircle(Color.blue); gbl.setConstraints(circleNew,gbc); add(circleNew); ex15_3.html <HTML> <HEAD> <TITLE>ex15_3< TITLE> < HEAD> <BODY> <applet code= ex15_3.class width=800 height=400> < applet> < BODY> < HTMI>
问答题
private static int size;