1《Java程序设计》复习题1.在JApplet窗口中显示两张图片(soldier.jpg),一张是原尺寸,一张放大。/*引入java.awt包和javax.swing包。*/importjava.awt.*;importjavax.swing.*;publicclassEg7_1extendsJApplet{Imagesoldier;//定义图形类对象publicvoidinit(){soldier=getImage(getCodeBase(),soldier.jpg);/*获得图像*/}publicvoidpaint(Graphicsg){g.drawImage(soldier,0,0,this);/*用g(画笔)绘制图片,参数0,0是屏幕左角顶点坐标*/g.drawImage(soldier,0,65,300,60,this);//参数300,60是确定图像的大小。}}2.创建一个窗口,在窗口中加入一个按钮,初涉Swing容器框架、内容面板及基本组件。importjava.awt.*;//引入java.awt包。importjavax.swing.*;//引入java.swing包。publicclassEg7_2{//声明类publicEg7_2(){//写该类的构造方法JFramef=newJFrame();//创建窗口底层容器框架(JFrame)对象f。ContainercontentPane=f.getContentPane();JButtonbutton=newJButton(按钮);//创建按钮类对象实例。contentPane.add(button);//将按钮组件button加到容器我的窗口f.setTitle(我的窗口);f.setSize(400,300);f.setVisible(true);}publicstaticvoidmain(Stringargs[]){newEg7_2();}}23利用面板(JPanel)设计图7.4所示的版面的容器结构,在窗口中放置五个标签,五个标签的摆放位置要求如图。importjava.awt.*;//步骤1:导入程序所需的java包importjava.awt.event.*;importjavax.swing.*;//步骤2:声明面版容器类publicclassEg7_3{publicEg7_3(){//步骤3:编写该类的构造方法JFramef=newJFrame(JPanelDemo);//创建JFrame实例f。ContainercontentPane=f.getContentPane();//创建内容面版实例contentPane.setLayout(newGridLayout(2,1));//设置面版为网格布局管理器JLabel[]label=newJLabel[5];//创建标签对象数组for(inti=0;ilabel.length;i++){//用循环为数组元素赋初值label[i]=newJLabel(标签+(i+1),JLabel.CENTER);label[i].setBackground(Color.lightGray);label[i].setBorder(BorderFactory.createEtchedBorder());label[i].setOpaque(true);}JPanelpanel1=newJPanel(newGridLayout(1,1));/*创建面版容器实例*/panel1.add(label[0]);//将第一个标签加到panel中JPanelpanel2=newJPanel(newGridLayout(1,2));//创建面版实例2JPanelpanel3=newJPanel(newGridLayout(1,2));//创建面版实例3panel3.add(label[1]);//把第2个数组元素加到panel3上panel3.add(label[2]);//把第3个数组元素加到panel3上JPanelpanel4=newJPanel(newGridLayout(2,1));//创建面版实例4panel4.add(label[3]);//把第4个数组元素加到panel4上panel4.add(label[4]);//把第5个数组元素加到panel4上3panel2.add(panel3);//将面版容器panel3加到panel2上。panel2.add(panel4);//将面版容器panel4加到panel2上。contentPane.add(panel1);//将面版容器panel1加到内容面版上。contentPane.add(panel2);//将面版容器panel2加到内容面版上。f.pack();//使窗口可见。f.show();//使窗口中的组件可见。f.addWindowListener(newWindowAdapter(){//41-43行处理关闭窗口动作publicvoidwindowClosing(WindowEvente){System.exit(0);}});}publicstaticvoidmain(String[]arg){newEg7_3();}}4.设计一程序,绘制一个从矩形变化到圆的图形,要求先从坐标(30,50)处画一120×120的矩形,再在该矩形中绘制7个圆角渐变为圆的矩形,最后的圆用红色填充。importjava.applet.*;/*设计步骤1:引*/importjava.awt.*;publicclassEg7_4extendsApplet{//步骤2:声明myRectRound类继承父类Applet。publicvoidpaint(Graphicsg){//步骤3:编写paint()绘图方法。intx=20,y=20,w1=120,h1=120,hd1=10,hd2=10,i;//定义局部变量g.drawRect(20,20,120,120);//在坐标(30,50)处画一个宽150高120的矩形。g.setColor(Color.green);//设置前景色为绿色g.fillRect(21,21,119,119);//在坐标(32,52)处填充一个宽150高120的矩形。g.setColor(Color.red);//设置前景色为红色for(i=1;i8;i=i+1){//用for循环画7个不同圆角矩形,g.drawRoundRect(x+=2,y+=2,w1=w1-8,h1=h1-8,hd1*i,hd2*i);}g.fillRoundRect(x+=2,y+=2,w1=w1-4,h1=h1-4,hd1*i,hd2*i);//圆角矩形}4}5.设计一个程序,使用绘制椭圆的方法绘制一个图7-8所示的小熊图像。importjava.applet.*;//步骤1:引入包importjava.awt.*;publicclassEg7_5extendsApplet{//步骤2:声明类publicvoidpaint(Graphicsg){//步骤3:编写paint()方法g.drawOval(40,60,80,60);//6、7行绘制小熊的耳朵g.drawOval(180,60,80,60);//绘制小熊的耳朵g.drawOval(60,70,180,190);//绘制一个椭圆作为小熊的脸g.drawOval(86,130,50,40);//9~12行绘制小熊的眼睛g.fillOval(97,130,28,40);g.drawOval(166,130,50,40);g.fillOval(177,130,28,40);g.drawOval(123,170,50,50);//绘制小熊的鼻子嘴}}6.绘制一个7彩的扇面。5importjava.applet.*;importjava.awt.*;publicclassEg7_6extendsApplet{publicvoidpaint(Graphicsg){intr=20;Colorcol[]={Color.red,Color.blue,Color.yellow,Color.orange,Color.green,Color.magenta,Color.cyan};for(inti=0;i7;i+=1){//采用循环方法绘制7个扇形图形。//g.setColor(Color.black);//设置前景色为黑色//g.drawArc(30,40,150,150,r,20);//用前景色画一段弧,g.setColor(col[i]);//设置前景色为颜色数组下标为i的颜色。g.fillArc(30,40,149,149,r,20);//填充一扇形。r+=20;}}}7.用Graphics2D类提供的方法画多彩直线.importjava.applet.*;//步骤1引入Graphics2D类需要的java.awt.*和java.awt.geom.*包importjava.awt.*;importjava.awt.geom.*;//该包中含有Graphics2D类的方法publicclassEg7_7extendsApplet{//步骤2:声明Line2D类,继承Applet。publicvoidpaint(Graphicsg){//步骤3:写paint()方法,inti,h1=20,h2=70,s1=0,s2=255,s3=0;//定义变量Colorcolor;//定义颜色类对象Graphics2Dg_2D=(Graphics2D)g;//将对象g强制转换为Graphics2D类对象g_2DLine2Dline;//创建Line2D类对象linefor(i=1;i=4;i+=1){//使用for循环绘制不同颜色的线6段color=newColor(s1,s2,s3);line=newLine2D.Double(h1,20,h2,20);g_2D.setColor(color);//设置当前色g_2D.draw(line);//绘制直线h1+=50;h2+=50;s1+=50;s2-=50;}}}8.绘制三个弧形图,一个是打开的弧,角度(45,180),高和宽(80,100),角度(45,180)。一个是闭合的弧,角度(45,180),高和宽(80,100),角度(45,180),一个是闭合的弧,角度(45,180),高和宽(80,100),角度(45,300)。importjava.applet.*;importjava.awt.*;importjava.awt.geom.*;publicclassEg7_8extendsApplet{publicvoidpaint(Graphicsg){//步骤3:写绘图方法paint()g.setColor(Color.red);//设置前景色为红色。Graphics2Dg_2D=(Graphics2D)g;//强制将g转换为Graphics2D对象。Arc2Darc1=newArc2D.Double(10,10,80,100,45,180,Arc2D.OPEN);Arc2Darc2=newArc2D.Double(50,60,80,80,45,180,Arc2D.CHORD);Arc2Darc3=newArc2D.Double(100,110,80,80,45,300,Arc2D.PIE);g_2D.fill(arc1);//画圆弧1。g_2D.fill(arc2);//画圆弧2。g_2D.fill(arc3);//画圆弧3。}}79.设计一个程序在窗口的东南西北中各放置一按钮,水平和垂直间据均为6。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassEg7_9{publicEg7_9(){//构造方法JFramef=newJFrame(123456);//创建FRame对象f,