《Java基础入门》 - 课后习题 下载本文

博学谷——让IT教学更简单,让IT学习更有效

}

}

} catch (IOException e) { }

System.out.println(e.toString());

五、简答题

1、简述流的概念。

2、Java流被分为字节流、字符流两大流类,两者有什么区别? 3、简要说明管道流。 六、编程题

按照题目需求,编写程序并运行

1、编写一个程序,分别使用字节流和字符流拷贝一个文本文件。 提示:

1)使用FileInputStream、FileOutputStream和FileReader、FileWriter分别进行拷贝

2)使用字节流拷贝时,定义一个1024长度的字节数组作为缓冲区,使用字符流拷贝使用使用

BufferedReader和BufferedWriter包装流进行包装

2、某人在玩游戏的时候输入密码123456后成功进入游戏(输错5次则被强行退出),要求用程序实现密码验证的过程。 提示:

1)使用Sysytem.in包装为字符流读取键盘输入。

2)BufferedReader对字符流进行包装。调用BufferedReader的readLine()方法每次读取一行。

3)在for循环判中判断输入的密码是否为“123456”,如果是则打印“恭喜你进入游戏”,并跳出循环,否则继续循环读取键盘输入。

4)当循环完毕,密码还不正确,则打印“密码错误,结束游戏”,并调用System.exit(0)方法结束程序。

第9章 GUI(图形用户界面)

一、填空题

1、 GUI、java.awt、javax.swing 2、 适配器 3、 Graphics 4、 事件监听器 5、 JComponent

6、 窗体事件、键盘事件、鼠标事件、动作事件

7、 WindowListener、windowClosing(WindowEvent e) 8、 模态对话框、非模态对话框 9、 setLayout(null)

10、JMenuBar、JMenu、JMenuItem 二、判断题

1、对 2、错 3、对 4、错 5、错 三、选择题

1、D 2、D 3、ABD 4、A 5、D 6、ABCD 7、ABD 8、ABC 9、D 10、C

博学谷——让IT教学更简单,让IT学习更有效 四、程序分析题

1、参考答案

extends

Stdno = new JTextField(); Name = new JTexxtField();

2、参考答案

card.next(cp); cp.add(jbt);

五、简答题

1、参考答案

? 通过实现XxxListener接口或者继承XxxAdapter类实现一个事件监听器类,并对处理监听动作的

方法进行重写

? 创建事件源对象和事件监听器对象

? 调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象 2、参考答案

AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,当我们利用 AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的\一次编译,到处运行\的概念,AWT 不得不通过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。

Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。由于在Swing 中没有使用本地方法来实现图形功能,我们通常把Swing控件称为轻量级控件。 AWT和Swing之间的基本区别:AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT 的Java程序,其运行速度比较慢。对于一个嵌入式应用来说,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT 当然成了嵌入式Java的第一选择。而在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的Java中则提倡使用Swing,也就是通过牺牲速度来实现应用程序的功能。 六、编程题

1、参考答案

import java.awt.*;

import java.awt.event.*;import javax.swing.*; public class MyMouseHandler extends JFrame {

public MyMouseHandler() {

final JLabel label = new JLabel(\此处显示鼠标右键点击的坐标\label.setOpaque(true);

label.setBackground(Color.PINK); this.add(label, BorderLayout.NORTH); this.setSize(300, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.addMouseListener(new MouseAdapter() {

博学谷——让IT教学更简单,让IT学习更有效

}

}

public static void main(String[] args) { }

new MyMouseHandler();

public void mouseClicked(MouseEvent e) { }

if (e.getButton() == e.BUTTON1) { }

int x = e.getX(); int y = e.getY();

String banner = \鼠标当前点击位置的坐标是\label.setText(banner);

});

this.setVisible(true);

2、参考答案

import java.awt.*; import java.util.*; import javax.swing.*; import java.awt.event.*;

public class Information extends JFrame {

// 窗口NORTH部的JPanel面板

private JPanel panel = new JPanel(); // 爱好标签

private JLabel lb1 = new JLabel(\爱好\// 三个表示爱好的JCheckBox复选框

private JCheckBox cb1 = new JCheckBox(\羽毛球\private JCheckBox cb2 = new JCheckBox(\乒乓球\private JCheckBox cb3 = new JCheckBox(\唱歌\// 性别标签

private JLabel lb2 = new JLabel(\性别\// 表示性别的JRadioButton单选框

private JRadioButton rb1 = new JRadioButton(\男\private JRadioButton rb2 = new JRadioButton(\女\// ButtonGroup添加JRadioButton,实现单选功能 private ButtonGroup bg = new ButtonGroup(); // 文本域组件

private JTextArea area = new JTextArea();

// 窗口CENTER部的JScrollPane面板,其中放置area文本域 private JScrollPane pane = new JScrollPane(area); // Set集合存放选中的兴趣

private Set hobbies = new HashSet(); // gender选中的性别

private String gender = \

博学谷——让IT教学更简单,让IT学习更有效

// JCheckBox复选框的事件监听器

private ActionListener listener1 = new ActionListener() { };

// JRadioButton单选框的事件监听器

private ActionListener listener2 = new ActionListener() { };

private void print() { }

public Information() {

//添加标签、单选和复选按钮 panel.add(lb1); panel.add(cb1); panel.add(cb2); panel.add(cb3); panel.add(lb2); // 清空文本域 area.setText(\

// 如果Set集合中有元素,打印兴趣 if (hobbies.size() > 0)

area.append(\你的兴趣爱好有: \

Iterator it = hobbies.iterator(); while (it.hasNext()) { }

// 如果gender不为空字符串,打印性别 if (!\

area.append(\你的性别为: \area.append(it.next() + \

public void actionPerformed(ActionEvent e) { }

JRadioButton jb = (JRadioButton) e.getSource(); gender = jb.getText(); print();

public void actionPerformed(ActionEvent e) { }

JCheckBox cb = (JCheckBox) e.getSource(); // 选中的复选框把文本添加到Set集合中 if (cb.isSelected()) {

hobbies.add(cb.getText());

// 反之从集合中移除 } else { }

print();

hobbies.remove(cb.getText());

// 打印方法