问答题

下面是一个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>

【参考答案】

sizeCurrent.width<sizeCurrent.height xCircle=(sizeCurrent.wi......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
请完成下列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;}}