第八章习题答案.docx
- 文档编号:173141
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:28
- 大小:305.79KB
第八章习题答案.docx
《第八章习题答案.docx》由会员分享,可在线阅读,更多相关《第八章习题答案.docx(28页珍藏版)》请在冰点文库上搜索。
第八章习题答案
一、填空题
1.Java的Swing包中定义框架的类是__.JFrame
2.Java的Swing包中定义面板的类是__JPanel_____
3.Java的Swing包中定义按钮的类是___JButton___
4.Java的Swing包中定义文本域的类是__JTextField
5.Java的Swing包中定义标签的类是___JLabel
6.Java的Swing包中定义组合框的类是__JComboBox
7.Java的Swing包中定义菜单条的类是__JMenuBar
8.Java的Swing包中定义菜单的类是__JMenu
9.Java的Swing包中定义菜单项的类是_JMenuItem
10.Java的Swing包中定义选项卡的类是__JTabbedPane
11.Color类定义在_java.awt___包中。
12.ActionEvent类定义在__java.awt.event___包中。
13.ActionEvent事件的监听接口是__ActionListener___,注册方法名是__addActionListener__,事件处理方法名是_____actionPerformed________
14.WindowEvent事件的监听接口是_____WindowListener______,注册方法名是_____addWindowListener_________
15.设置容器布局管理器的方法是___setLayout___
16.显示JFrame框架的方法名是________setVisible______
17.设置JFrame框架标题的方法名是_______setTitle______
18.设置JFrame框架大小的方法名是_______setSize______
19.重画面板的方法名是_____repaint_____
20.AWT的用户界面组件库被更稳定、通用、灵活的库取代,该库称为Swing组件库。
21.不依赖本地GUI的Swing组件称为轻型组件,AWT组件称为重型组件。
22.图形类可以分为三组:
容器类、组件类和辅助类。
23.FlowLayout布局管理器可以使用三个常量之一来指定组件的对齐方式,这三个常量是24.FlowLayout.RIGHT、FlowLayout.CENTER和FlowLayout.LEFT。
25.FlowLayout布局方式默认的对齐方式是居中,默认的水平间距和垂直间距都是5个像素。
二、单项选择题
1.下面属于容器类的是(A)。
AJframeBJtextFieldCColorDJmenu
2.FlowLayout的布局策略是(A)
A)按添加的顺序由左至右将组件排列在容器中。
B)按设定的行数和列数以网格的形式排列组件。
C)将窗口划分成五部分,在这五个区域中添加组件。
D)组件相互叠加排列在容器中。
3.BorderLayout的布局策略是(C)
A)按添加的顺序由左至右将组件排列在容器中。
B)按设定的行数和列数以网格的形式排列组件。
C)将窗口划分成五部分,在这五个区域中添加组件。
D)组件相互叠加排列在容器中。
4.GridLayout的布局策略是(B)
A)按添加的顺序由左至右将组件排列在容器中。
B)按设定的行数和列数以网格的形式排列组件。
C)将窗口划分成五部分,在这五个区域中添加组件。
D)组件相互叠加排列在容器中。
5.JFrame中内容窗格缺省的布局管理器是(B)
A)FlowLayoutB)BorderLayoutC)GridLayoutD)CardLayout
6.JPanel缺省的布局管理器是(A)
A)FlowLayoutB)BorderLayoutC)GridLayoutD)CardLayout
三、判断题
1.AWT事件最初是为AWT组件设计的,但是许多Swing组件都可以触发它们。
2.FlowLayout是Jframe内容窗格默认的布局管理器。
3.Java使用事件委托处理模型来处理事件。
源对象和监听对象可以是同一个对象。
4.Graphics类是在不同的平台上显示图形和图像的一个具体类。
答案:
1.(对)
2.(错)
3.(对)
4.(错)
三、编程题:
掌握:
(1)面板和面板布局。
(2)使用框架及布局
1.创建一个图形化界面,模拟教师中讲台和座位的分布。
讲台放置在教师的最上端,学生座位按行、列分布。
指定学生座位按7行5列的布局分布。
如图所示:
(考察知识点:
定义框架和面板,分别采用布局管理器进行布局,添加按钮组件)
答案:
importjavax.swing.JFrame;
importjavax.swing.JButton;
importjava.awt.Container;
importjava.awt.FlowLayout;
importjava.awt.GridLayout;
importjava.awt.BorderLayout;
importjavax.swing.JPanel;
publicclassTestextendsJFrame{
publicTest(){
Containerc=this.getContentPane();
c.add(newJButton("讲台"),BorderLayout.NORTH);
JPanelp=newJPanel();
p.setLayout(newGridLayout(7,5));
for(inti=0;i<35;i++){
p.add(newJButton("座位"+i));
}
this.getContentPane().add(p,BorderLayout.CENTER);
}
publicstaticvoidmain(String[]args)
{
TestmyFrame=newTest();
myFrame.setSize(700,700);
myFrame.setVisible(true);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
2.请编写一个Application,其功能为:
在其图形窗口按右对齐方式摆放三个按钮,三个按钮的标题分别显示为:
“Button1”,“Button2”,“Button3”。
(考察知识点:
FlowLayout布局管理器的使用)
mportjava.awt.*;
importjavax.swing.*;
classMyFrameextendsJFrame
{
publicMyFrame()
{
Containercontainer=this.getContentPane();
container.setLayout(newFlowLayout(FlowLayout.RIGHT));
container.add(newJButton("Button1"));
container.add(newJButton("Button2"));
container.add(newJButton("Button3"));
}
publicstaticvoidmain(String[]args)
{
MyFramemyFrame=newMyFrame();
myFrame.setTitle("Show");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(200,200);
myFrame.setVisible(true);
}
}
3.请编写一个Application,其功能为:
在其框架的内容网格上安排两个按钮,分别命名为East,West,内容网格的布局为BorderLayout布局,并将两个按钮放置在内容网格的东部区域和西部区域。
(考察知识点:
BorderLayout布局管理器的使用方法)
importjava.awt.*;
importjavax.swing.*;
classMyFrameextendsJFrame
{
publicMyFrame()
{
Containercontainer=this.getContentPane();
container.setLayout(newBorderLayout());
container.add(newButton("west"),BorderLayout.WEST);
container.add(newButton("east"),BorderLayout.EAST);
}
publicstaticvoidmain(String[]args)
{
MyFramemyFrame=newMyFrame();
myFrame.setTitle("Show");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(200,200);
myFrame.setVisible(true);
}
}
4.编写下图所示的计算器界面:
将16个按钮放置在面板中(面板的布局为4*4的GridLayout布局),再将面板放置在框架中的中间(框架布局为缺省布局BorderLayout)。
(考察知识点:
框架面板的定制,在框架中添加面板,使用BorderLayout和GridLayout布局)
importjava.awt.*;
importjava.awt.event.*;
publicclassApp
{
publicstaticvoidmain(String[]args)
{
newMyFrame("计算器");
}
}
classMyFrameextendsFrame
{
TextFieldtf;
Panelp=newPanel();
Buttonb[]=newButton[16];
MyFrame(Strings)
{
super(s);
this.setSize(180,180);
//框架的缺省布局是:
BorderLayout
tf=newTextField(20);
add(tf,BorderLayout.NORTH);
Stringname[]={"1","2","3","+",//第1行
"4","5","6","-",//第2行
"7","8","9","*",//第3行
"0",".","=","/",//第2行
};
p.setLayout(newGridLayout(4,4));
for(inti=0;i { b[i]=newButton(name[i]); p.add(b[i]); } add(p,BorderLayout.CENTER); this.setVisible(true); } } 掌握: (1)绘制字符串、字符、字节 (2)字体、字型、字号的使用(3)颜色的设置 5.请编写一个Application,实现如下图所示的图形界面: (考察知识点: 在指定坐标位置上设置字符串的颜色) 提示: 在图形界面坐标(20,30)处以绿色显示“我喜欢绿色。 ”,在坐标(20,60)处以蓝色显示“我也喜欢蓝色。 ”。 答案: importjava.awt.*; importjavax.swing.*; publicclassMyFrameextendsJFrame { publicMyFrame() { MyPanelmyPanel=newMyPanel(); this.getContentPane().add(myPanel); } publicstaticvoidmain(String[]args) { MyFramemyFrame=newMyFrame(); myFrame.setTitle("ShowString"); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myFrame.setSize(200,200); myFrame.setVisible(true); } } classMyPanelextendsJPanel { publicvoidpaintComponent(Graphicsg) { super.paintComponent(g); g.setColor(Color.green); g.drawString("我喜欢绿色。 ",20,30); g.setColor(Color.blue); g.drawString("我也喜欢蓝色。 ",20,60); } } 6.请编写一个Application,分别以红、绿、黄、粉、白、蓝等六种颜色,在同一行上显示六个数字1、2、3、4、5、6。 图形界面如下图所示: (考察知识点: 对字符进行不同颜色的设置) 答案: importjava.awt.*; importjavax.swing.*; classMyFrameextendsJFrame { publicMyFrame() { MyPanelmyPanel=newMyPanel(); this.getContentPane().add(myPanel); } publicstaticvoidmain(String[]args) { MyFramemyFrame=newMyFrame(); myFrame.setTitle("Show"); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myFrame.setSize(200,200); myFrame.setVisible(true); } } classMyPanelextendsJPanel { publicvoidpaintComponent(Graphicsg) { super.paintComponent(g); intj=0; Colorcolor[]=newColor[6]; color[0]=Color.red;color[1]=Color.green; color[2]=Color.yellow;color[3]=Color.pink; color[4]=Color.white;color[5]=Color.blue; for(charch='1';ch<='6';ch++) { g.setColor(color[ch-'1']); g.drawString(""+ch,10+j,30); j+=20; } } } 7.请编写一个Application,实现以不同的灰度值在一行上显示数字0-9的图形界面,如下图所示: (考察知识点: 对字符进行不同灰度的设置) 答案: importjava.awt.*; importjavax.swing.*; classMyFrameextendsJFrame { publicMyFrame() { MyPanelmyPanel=newMyPanel(); this.getContentPane().add(myPanel); } publicstaticvoidmain(String[]args) { MyFramemyFrame=newMyFrame(); myFrame.setTitle("Show"); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myFrame.setSize(500,400); myFrame.setVisible(true); } } classMyPanelextendsJPanel { publicvoidpaintComponent(Graphicsg) { super.paintComponent(g); intj=0; intred=0,green=0,blue=0; for(charch='0';ch<='9';ch++) { g.setColor(newColor(red,green,blue)); g.drawString(""+ch,10+j,30); j+=20; red+=25; green+=25; blue+=25; } } } 8.编写一个Application,实现如下图的图形界面: 提示: 将字符串“Ilikejava! ”在图形界面上重复显示5次,每次显示在1行上。 要求显示字体为"Courier"字体,字体风格为斜体,第1行字符串的字体大小是15,后面的每一行的字体大小依次增加5,每行的间隔为30像素。 (考察知识点: 设置字符串的显示次数、字体、字号、字符间距) 答案: importjava.awt.*; importjavax.swing.*; classMyFrameextendsJFrame { publicMyFrame() { MyPanelmyPanel=newMyPanel(); this.getContentPane().add(myPanel); } publicstaticvoidmain(String[]args) { MyFramemyFrame=newMyFrame(); myFrame.setTitle("Show"); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myFrame.setSize(250,250); myFrame.setVisible(true); } } classMyPanelextendsJPanel { publicvoidpaintComponent(Graphicsg) { super.paintComponent(g); Fontf1; intsize=15; inty=30; Stringstr="Ilikejava! "; for(inti=0;i<5;i++) { f1=newFont("Courier",Font.ITALIC,size); g.setFont(f1); g.drawString(str,30,y); size+=5; y+=30; } } } 9.请编写一个Application,以不同颜色在一列上显示字符串"每个字的颜色都不同! ",实现的图形界面可参考下图: (考察知识点: 设置字符串的渐变颜色) @程序 importjava.awt.*; importjavax.swing.*; classMyFrameextendsJFrame { publicMyFrame() { MyPanelmyPanel=newMyPanel(); this.getContentPane().add(myPanel); } publicstaticvoidmain(String[]args) { MyFramemyFrame=newMyFrame(); myFrame.setTitle("Show"); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myFrame.setSize(200,200); myFrame.setVisible(true); } } classMyPanelextendsJPanel { publicvoidpaintComponent(Graphicsg) { super.paintComponent(g); intj=0; char[]b={'每','个','字','的','颜','色','都','不','同','! '}; intred=188,green=220,blue=99; for(inti=0;i { g.setColor(newColor(red,green,blue)); g.drawString(""+b[i],20,20+j); j+=15; red=(red+35)%256;green=(green+55)%256;blue=(blue+85)%256; } } } 掌握: (1)画直线 (2)画长方形、画正方形(3)画圆、画椭圆、画扇形、画弧 10.编写Java程序,实现如图所示的图形界面: 提示: 将程序窗口的右上的1/4区域用红色画成实心的长方形;将小程序窗口的左下的1/4区域用蓝色画成实心的长方形。 (考察知识点: 实心长方形绘制,填充颜色) @程序 importjava.awt.*; importjavax.swing.*; classMyFrameextendsJFrame { publicMyFrame() { MyPanelmyPanel=newMyPanel(); this.getContentPane().add(myPanel); } publicstaticvoidmain(String[]args) { MyFramemyFrame=newMyFrame(); myFrame.setTitle("Show"); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myFrame.set
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 习题 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)