收藏 分享(赏)

《Java程序设计》复习题_绘图.doc

上传人:dreamzhangning 文档编号:2769747 上传时间:2018-09-27 格式:DOC 页数:54 大小:633.50KB
下载 相关 举报
《Java程序设计》复习题_绘图.doc_第1页
第1页 / 共54页
《Java程序设计》复习题_绘图.doc_第2页
第2页 / 共54页
《Java程序设计》复习题_绘图.doc_第3页
第3页 / 共54页
《Java程序设计》复习题_绘图.doc_第4页
第4页 / 共54页
《Java程序设计》复习题_绘图.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、1Java 程序设计复习题1在 JApplet 窗口中显示两张图片(soldier.jpg) ,一张是原尺寸,一张放大。 /*引入 java.awt 包和 javax.swing 包。*/import java.awt.*;import javax.swing.*; public class Eg7_1 extends JApplet Image soldier; /定义图形类对象public void init()soldier = getImage(getCodeBase(),“soldier.jpg“);/*获得图像*/ public void paint(Graphics g) g.d

2、rawImage(soldier,0,0,this); /* 用 g(画笔)绘制图片,参数 0,0 是屏幕左角顶点坐标*/ g.drawImage(soldier,0,65,300,60,this); /参数 300,60 是确定图像的大小。 2创建一个窗口,在窗口中加入一个按钮,初涉 Swing 容器框架、内容面板及基本组件。import java.awt.*; /引入 java.awt 包。import javax.swing.*; /引入 java.swing 包。public class Eg7_2 /声明类public Eg7_2 () /写该类的构造方法JFrame f = new

3、 JFrame(); /创建窗口底层容器框架(JFrame)对象f。Container contentPane = f.getContentPane();JButton button = new JButton (“按钮“); /创建按钮类对象实例。contentPane.add(button); /将按钮组件 button 加到容器我的窗口f.setTitle(“我的窗口“);f.setSize(400,300);f.setVisible(true);public static void main(String args)new Eg7_2(); 23 利用面板(JPanel)设计图 7.4

4、 所示的版面的容器结构,在窗口中放置五个标签,五个标签的摆放位置要求如图。import java.awt.*; /步骤 1:导入程序所需的 java 包import java.awt.event.*;import javax.swing.*;/步骤 2:声明面版容器类public class Eg7_3public Eg7_3() /步骤 3:编写该类的构造方法JFrame f = new JFrame(“JPanelDemo“); /创建 JFrame 实例 f。Container contentPane = f.getContentPane();/创建内容面版实例contentPane.s

5、etLayout(new GridLayout(2,1);/设置面版为网格布局管理器JLabel label = new JLabel5; /创建标签对象数组for(int i=0; ilabel.length ; i+) /用循环为数组元素赋初值labeli = new JLabel(“标签 “+(i+1),JLabel.CENTER);labeli.setBackground(Color.lightGray);labeli.setBorder(BorderFactory.createEtchedBorder();labeli.setOpaque(true);JPanel panel1 =

6、new JPanel(new GridLayout(1,1);/*创建面版容器实例*/panel1.add(label0); /将第一个标签加到 panel 中JPanel panel2 = new JPanel(new GridLayout(1,2);/ 创建面版实例 2JPanel panel3 = new JPanel(new GridLayout(1,2);/创建面版实例 3panel3.add(label1); /把第 2 个数组元素加到 panel3 上panel3.add(label2); /把第 3 个数组元素加到 panel3 上3JPanel panel4 = new JP

7、anel(new GridLayout(2,1);/ 创建面版实例 4panel4.add(label3); /把第 4 个数组元素加到 panel4 上panel4.add(label4); /把第 5 个数组元素加到 panel4 上panel2.add(panel3); /将面版容器 panel3 加到 panel2 上。panel2.add(panel4); /将面版容器 panel4 加到 panel2 上。contentPane.add(panel1); /将面版容器 panel1 加到内容面版上。contentPane.add(panel2); /将面版容器 panel2 加到内

8、容面版上。f.pack(); /使窗口可见。f.show(); /使窗口中的组件可见。f.addWindowListener(new WindowAdapter() /41-43 行处理关闭窗口动作public void windowClosing(WindowEvent e) System.exit(0););public static void main(String arg) new Eg7_3();4设计一程序,绘制一个从矩形变化到圆的图形,要求先从坐标(30,50)处画一 120120 的矩形,再在该矩形中绘制 7 个圆角渐变为圆的矩形,最后的圆用红色填充。import java.a

9、pplet.*; /* 设计步骤 1:引*/import java.awt.*;public class Eg7_4 extends Applet /步骤 2:声明 myRectRound 类继承父类 Applet。public void paint(Graphics g) /步骤 3:编写 paint()绘图方法。int x=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); /设置前景色为

10、绿色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 所示的小熊图像。import java.apple

11、t.*; /步骤 1:引入包import java.awt.*;public class Eg7_5 extends Applet /步骤 2:声明类public void paint(Graphics g) /步骤 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); /912 行绘制小熊的眼睛g.fillOval(97,130,28,40);g

12、.drawOval(166,130,50,40);g.fillOval(177,130,28,40);g.drawOval(123,170,50,50); /绘制小熊的鼻子嘴 6. 绘制一个 7 彩的扇面。5import java.applet.*; import java.awt.*;public class Eg7_6 extends Applet public void paint(Graphics g) int r=20; Color col =Color.red,Color.blue, Color.yellow,Color.orange,Color.green,Color.magen

13、ta,Color.cyan;for(int i=0;i7;i+=1) /采用循环方法绘制 7 个扇形图形。/g.setColor(Color.black); /设置前景色为黑色/g.drawArc(30,40,150,150,r,20); /用前景色画一段弧,g.setColor(coli); /设置前景色为颜色数组下标为 i 的颜色。g.fillArc(30,40,149,149,r,20); /填充一扇形。r+=20; 7. 用 Graphics2D 类提供的方法画多彩直线 .import java.applet.*; /步骤 1 引入 Graphics2D 类需要的 java.awt.*

14、和java.awt.geom.*包import java.awt.*;import java.awt.geom.*; /该包中含有 Graphics2D 类的方法public class Eg7_7 extends Applet /步骤 2: 声明 Line2D 类,继承Applet。public void paint(Graphics g) /步骤 3:写 paint()方法, int i,h1=20,h2=70,s1=0,s2=255,s3=0;/定义变量Color color; /定义颜色类对象Graphics2D g_2D=(Graphics2D)g; /将对象 g 强制转换为Grap

15、hics2D 类对象 g_2D6Line2D line; /创建 Line2D 类对象 line for(i=1;i=4;i+=1) /使用 for 循环绘制不同颜色的线段color=new Color(s1,s2,s3); line=new Line2D.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,18

16、0), 高和宽 (80,100),角度(45 ,180),一个是闭合的弧,角度(45,180),高和宽(80,100), 角度(45 ,300)。import java.applet.*;import java.awt.*; import java.awt.geom.*; public class Eg7_8 extends Appletpublic void paint(Graphics g) /步骤 3:写绘图方法 paint()g.setColor(Color.red); /设置前景色为红色。Graphics2D g_2D=(Graphics2D)g;/强制将 g 转换为 Graphic

17、s2D 对象。Arc2D arc1=new Arc2D.Double(10,10,80,100,45,180, Arc2D.OPEN);Arc2D arc2=new Arc2D.Double(50,60,80,80,45,180, Arc2D.CHORD);Arc2D arc3=new Arc2D.Double(100,110,80,80,45,300, Arc2D.PIE);g_2D.fill(arc1); /画圆弧 1。g_2D.fill(arc2); /画圆弧 2。g_2D.fill(arc3); /画圆弧 3。7 9. 设计一个程序在窗口的东南西北中各放置一按钮,水平和垂直间据均为6。

18、import java.awt.*; import java.awt.event.*;import javax.swing.*;public class Eg7_9 public Eg7_9() /构造方法JFrame f = new JFrame(“123456“); /创建 FRame 对象 f,并用构造方法进行实例化。Container contentPane = f.getContentPane();contentPane.setLayout(new BorderLayout(6,6);/边界布局,行和列的间隔为 6 像素contentPane.add(new JButton(“东“)

19、,BorderLayout.EAST); / “ 东“ contentPane.add(new JButton(“西“),BorderLayout.WEST); / “ 西“contentPane.add(new JButton(“南“),BorderLayout.SOUTH); / “南“contentPane.add(new JButton(“北“),BorderLayout.NORTH); / “ 北“ contentPane.add(new JLabel(“謜errawatwatewatewatwat3?,JLabel.CENTER),BorderLayout.CENTER); /“中

20、“ /f.setTitle(“MyBorderLayout“); /设置窗口标题 f.setSize(400,300);/f.pack(); /以紧凑方式显示f.setVisible(true); /设置可见,缺省为不可见public static void main(String args) 8new Eg7_9();10. 将六个按钮顺序摆放在窗口中,且中央对齐,每个组件之间水平间距10,垂直间距 10。import java.awt.*; import java.awt.event.*;import javax.swing.*;public class Eg7_10 public Eg7

21、_10() JFrame f = new JFrame();/创建 FRame 对象 f,并用构造方法进行实例化。Container contentPane = f.getContentPane();contentPane.setLayout(new FlowLayout(FlowLayout.LEFT,10,10);contentPane.add(new JButton(“第一个按钮 “); contentPane.add(new JButton(“第二个按钮 “);contentPane.add(new JButton(“第三个按钮 “);contentPane.add(new JButt

22、on(“第四个按钮 “);contentPane.add(new JButton(“第五个按钮 “);contentPane.add(new JButton(“放在最后的一个按钮 “);f.setTitle(“流布局管理器“); /设置窗口标题f.setSize(f.getPreferredSize(); /书上错 /f.setSize(400,200);/按 JFrame 默认的窗口尺寸显示窗口容器框架内容。f.setVisible(true); /显示放置在容器面板中的按钮。f.addWindowListener(new WindowAdapter()public void windowC

23、losing(WindowEvent e) 9System.exit(0); ); public static void main(String args)Eg7_10 b = new Eg7_10(); 11. 设计一个计算器的面板,只要求布置九个数字按钮。import java.awt.*; import java.awt.event.* ;import javax.swing.*; public class Eg7_11 public Eg7_11() JFrame f = new JFrame(); /创建 FRame 对象 f,并用构造方法进行实例化Container content

24、Pane = f.getContentPane();contentPane.setLayout(new GridLayout(5,3); /*网格布局:3 行 3 列-有改动*/for( int i=1;i=9;i+)contentPane.add(new JButton(“+i);contentPane.add(new JButton(“+“);contentPane.add(new JButton(“-“);contentPane.add(new JButton(“*“);contentPane.add(new JButton(“/“);contentPane.add(new JButto

25、n(“.“);contentPane.add(new JButton(“=“);f.setTitle(“网格布局管理器“); /设置窗口标题f.pack(); f.setVisible(true); 10public static void main(String args)Eg7_11 b = new Eg7_11();12. 制作一个边框具有凹陷效果的窗口。/步骤 1:引入 Javade 包,因为在该例中使用了 Border 类,所以别忘了引入 javax.swing.border.*;import java.awt.*;import java.awt.event.*;import jav

26、ax.swing.*;import javax.swing.border.*;/步骤 2:声明类public class Eg7_12/这是一个应用程序,我们直接用主方法 main()实现public static void main(String args)JFrame f = new JFrame(“myBorder“);Container contentPane = f.getContentPane();/窗口的默认布局是边界布局 JLabel label = new JLabel(“1234567890“,JLabel.CENTER); /创建一个标签实例label.setBorder

27、(BorderFactory.createBevelBorder(BevelBorder.RAISED);/*该语句创建一个带有凹陷边框的组件,这里的组件是标签,它充满整个窗口,也让人就从视觉上看到的是一个凹陷的窗口。我们用 setBorder 方法对标签对象实例设置边框,参数我们用匿名方法用 BorderFactory 调用 createBevelBorder 方法来创建由参数 BevelBorder.LOWERED 所描述的组件边框。*/contentPane.add(label); /把标签加到内容面板上。f.setSize(200,150); /设置窗口的大小11f.show(); 1

28、3. 设计一程序,在用户图形界面中用标签方法实现文字和图形的提示信息,提示信息为“ 今日有雨” 。 (图形文件名为 yu.jpg。 )import java.awt.*; /步骤 1:程序开始部分,导入程序中要用的包;import java.awt.event.*;import javax.swing.*;/步骤 2:声明类,给类起一个好名字,类名前加上 public classpublic class Eg7_13 public static void main(String args) /步骤 3:编写应用程序的主方法 main()JFrame f = new JFrame(“标签“);

29、/创建窗口框架对象实例Container contentPane = f.getContentPane(); /创建窗口框架内容面板对象实例Icon icon=new ImageIcon(“a.gif“); /制作 Icon 组件 JLabel label= new JLabel(“今日有雨“,icon,JLabel.CENTER); /创建标签实例label.setHorizontalTextPosition(JLabel.CENTER); /书上有错/ 水平/设置字符放在标签图像的中间。没有该项设置文字将放在标签的右边label.setVerticalTextPosition(JLabel

30、.TOP); /设置字符放在标签图像的上面/ 垂直 12contentPane.add(label); /蒋标签放到内容面板上f.pack();f.show(); / myLatel 结束14. 设计一程序,在用户图形界面中建立两个按钮,一个按钮带有“文字”文字信息,一个带有“ 图形”文字。当按下“文字”按钮时显示文字信息 “今日有雨”,按下 “图形”按钮时显示一个下雨图形 (yun.jpg)。import java.awt.*; /步骤 1:import java.awt.event.*;import javax.swing.*;/步骤 2:声明按钮类,public class Eg7_14

31、 /步骤 3:这是一个应用程序,从这里开始写 main()主方法。 public static void main(String args)JFrame f = new JFrame(“按钮例题“); Container contentPane = f.getContentPane(); contentPane.setLayout(new GridLayout(1,2); JButton b1 = new JButton(“天气“); /创建按钮实例/以下两行书上有错,请改正 b1.setHorizontalTextPosition(JButton.CENTER); /定义标签中水平方向的文字

32、居中b1.setVerticalTextPosition(JButton.TOP); /定义标签中垂直方向的文字以顶端对齐contentPane.add(b1);Icon icon=new ImageIcon(“.a.gif“);JButton b2 = new JButton(icon);/书有错 ,请改正b2.setHorizontalTextPosition(JButton.CENTER);b2.setVerticalTextPosition(JButton.TOP);contentPane.add(b2);/书有错f.pack();f.show();f.addWindowListene

33、r(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););1315. 设计一程序,要求在用户图形界面中创建三个按钮,一个是文字按钮,一个图形按钮,一个是图像文字按钮。按钮要求实现“开/关”功能,既表现为按下时呈现陷下状态,再按时弹起恢复原状。import java.awt.*;import java.awt.event.*;import javax.swing.*;/步骤 2:声明类public class Eg7_15 public static void main(String args)

34、 /步骤 3:写主方法JFrame f = new JFrame(“按钮实例“); /创建窗口框架实例 f 。Container contentPane = f.getContentPane(); /用 f 创建内容面板实例contentPane.setLayout(new GridLayout(3,1); /设置内容面板的布局管理器/Icon icon1=new ImageIcon(“.nuts.gif“);Icon icon2=new ImageIcon(“.cherry.gif“);Icon icon3=new ImageIcon(“.chocolate.gif“);JToggleBut

35、ton b1 = new JToggleButton(“我是按钮 1“); /创建文字按钮JToggleButton b2 = new JToggleButton(icon2); /创建图像按钮JToggleButton b3 = new JToggleButton(“我是按钮 3“,icon3);/创建文字和图像按钮contentPane.add(b1); /将文字按钮放到框架的内容面板上contentPane.add(b2); /将图像按钮放到框架的内容面板上contentPane.add(b3); /将文字图像按钮放到框架的内容面板上f.pack(); f.show();f.addWin

36、dowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0););1416. 设计一 GUI 程序,在窗口中制作一个按钮,当将鼠标的光标移到按钮上时显示图一,按下按钮时显示图二,离开按钮时显示图三。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Eg7_16 public static void main(String args) JFrame f = new JFrame(“m

37、yRollover“); Container contentPane = f.getContentPane();Icon rollover = new ImageIcon(“.1.gif“); /创建 icon 对像实例rolloverIcon general = new ImageIcon(“.2.gif“);/创建 icon 对像实例 generalIcon press = new ImageIcon(“.3.gif“); /创建 icon 对像实例 pressIcon disable = new ImageIcon(“.4.gif“);/创建 icon 对像实例 disableJButt

38、on b = new JButton(); /创建按钮对像实例 bb.setRolloverEnabled(true); /设按钮 b 的标示具有翻滚的功能b.setIcon(general); /将 icon 实例 general 加载到按钮上,按钮上就显示该图形b.setRolloverIcon(rollover); /按钮翻滚后显示的图形是 rolloverb.setPressedIcon(press); /鼠标按下时显示 press 图形contentPane.add(b); /将按钮加到内容面板上f.pack(); /显示窗口f.show(); /显示窗口中的组件f.addWindo

39、wListener(new WindowAdapter() /处理窗口关闭public void windowClosing(WindowEvent e) System.exit(0););1517. 设计一程序,要求在图形用户界面中输入产品的说明书,输入内容有产品名称、产品规格、产品编号、产品说明。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Eg7_17 public static void main(String args) JFrame f = new JFrame(“JTextA

40、rea 例题“); /创建 JFrame 窗口容器类对象 f。Container contentPane = f.getContentPane();/创建内容面板对象实例contentPane.setLayout(new BorderLayout(); /设置内容面板采用边界布局管理器JPanel p1 = new JPanel(); /创建面板容器实例。p1.setLayout(new GridBagLayout(); /设置面板采用网袋布局管理器GridBagConstraints gbc = new GridBagConstraints();/创建网袋格布局对象 gbc。gbc.anch

41、or = GridBagConstraints.WEST; /确定网袋格布局管理器对象 gbc 的位置gbc.insets = new Insets(2,2,2,2); /gbc 与边界的距离(上,左,下,右)p1.setBorder(BorderFactory.createTitledBorder(“建构一般的JTextArea“); /设置边界框和说明文字 16JLabel l1 = new JLabel(“产品名称:“); /创建 4 个标签实例JLabel l2 = new JLabel(“产号编号:“); JLabel l3 = new JLabel(“产品规格:“); JLabel

42、 l4 = new JLabel(“产品说明:“); JTextArea t1 = new JTextArea(2,8); /创建 4 个文本域实例JTextArea t2 = new JTextArea(10,2);/书有错,请改正 JTextArea t3 = new JTextArea(“TravelMate 372 系列“,3,10); JTextArea t4 = new JTextArea(“采用因特尔迅驰移动技术,因特尔奔腾 M 处理器 1.5GHz“,5,10); /以最合适的长度存放字符串t1.setText(“宏基笔记本电脑 “); /向文本域 t1 写入文字数据,清除以前

43、的内容t2.append(“A19345-by3874534-34345“); /在文本域 t2 中已有文字后写入该字符串,t4.setLineWrap(true); /*激活自动换行功能,当文字输入长度大于文本域提供的宽度时,会自动换行。*/gbc.gridy=1;gbc.gridx=0;p1.add(l1,gbc);/*29-36 行将 4 个标签和 4 个文本域按指定的位置加到面板容器中。*/gbc.gridx=1;p1.add(t1,gbc);gbc.gridy=2;gbc.gridx=0;p1.add(l2,gbc); gbc.gridx=1;p1.add(t2,gbc);gbc.g

44、ridy=3;gbc.gridx=0;p1.add(l3,gbc);gbc.gridx=1;p1.add(t3,gbc);gbc.gridy=4;gbc.gridx=0;p1.add(l4,gbc);gbc.gridx=1;p1.add(t4,gbc); contentPane.add(p1); /把面板容器加到内容面板里。f.pack(); /使窗口可见f.show(); /使窗口中的组件可见f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );18

45、. 设计一程序,在窗口中显示一个名为 JEditorPane.html 文件.17import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;/书错/开始编写文本显示类,给类起一个好名字,别忘了在类名前加上 public classpublic class Eg7_18 public static void main(String args) /在类体中写主方法 main()JEditorPane editPane = null; /定义一个 JEditorPane 的对象editPane,并初

46、始化为 null。/try File file = new File (“d:w618index.htm“);/先创建一文件类的实例。String str = file.getAbsolutePath();/*通过文件类对象调用方法getAbsolutePath()获的 文件所在的路径,并将该路径支付给字符串变量str。*/str = “file:“+str; /给一字符串变量赋值。-书错editPane = new JEditorPane();/创建 JEditorPane 类的实例。editPane.setPage(str); /由该实例对象负责将字符串显示在窗口面板上。catch(IOException ioe) /*捕捉文件打不开或不存在等异常事件,然后对异常事件进行处理,关闭窗口。*/ioe.printStackTrace(System.err);/打印发生异常的信息 System.exit(0);JFrame f = new JFrame(“文本显示窗口“);f.setContentPane(new JScrollPane(editPane);/* 由类对象 f 调用方法setContentPane,设置窗口容器面板为滚动式面板.*/f.pack(); /设置窗口面板的大小;f.show();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报