Java2实用教程第五版+第九章习题答案

这是《Java2实用教程第五版》的试题答案,需要的同学评论关注加点赞

有问题可以在评论区提出

IMG_20210308_172835

1.问答题
(1)JFrame类的对象的默认布局是什么布局?

Frame容器的默认布局是BorderLayout布局。

(2)一个容器对象是否可以使用add方法添加一个JFrame窗口?

不可以。JFrame窗口是一个底层容器,其他组件必须被添加到底层容器中,以便借助这个底层容器和操作系统进行交互。窗口默认被系统添加到显示器屏幕上,因此不允许将一个窗口添加到另一个容器中。

(3)JTextField可以触发什么事件?

ActionEvent

(4)JTextArea中的文档对象可以触发什么类型的事件?

DocumentEvent

(5)MouseListener接口中有几个方法?

5个。分别是在事件源上按下鼠标键。在事件源上释放鼠标键。在事件源上单击鼠标。鼠标进入事件源。鼠标退出事件源。

(6)处理鼠标拖动触发的MouseEvent事件需要使用哪些接口?

MouseMotionListener

2.选择题
(1)下列哪个叙述是不正确的?
A.一个应用程序中最多只有一个窗口。
B.JFrame创建的窗口默认是不可见的。
C.不可以向JFrame窗口中添加JFrame窗口。
D.窗口可以调用setTitle(String s)方法设置窗口的标题。

A
一个应用程序中可以有若干个窗口。窗口默认是不可见的,需要调用setVisible(boolean b)设置窗口的可见性。

(2)下列哪个叙述是不正确的?
A.JButton对象可以使用addActionListener(ActionListener 1)方法将没有实现ActionListener接口的类的实例注册为自己的监视器。
B.对于有监视器的JTextField文本框,如果该文本框处于活动状态(有输入焦点)时,用户即使不输入文本,只要按回车(Enter)键也可以触发ActoinEvent事件。
C.监视KeyEvent事件的监视器必须实现KeyListener接口。
D.监视WindowEvent事件的监视器必须实现WindowListener接口。

A
没有实现ActionListener接口的类的实例不能被注册

(3)下列哪个叙述是不正确的?
A.使用FlowLayout布局的容器最多可以添加5个组件。
B.使用BoderLayout布局的容器被划分为5个区域。
C.Jpanel的默认布局是FlowLayout布局。
D.JDialog的默认布局是BorderLayout布局。

A
流水布局可以添加若干个组件。

3.编程题
(1)编写应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。窗口中添加两个文本区,当我们在一个文本区输入若干个数时,另一个文本区同时对你输入的数进行求和运算并求出平均值,也就是说随着i输入的变化,另一个文本区不断地更新求和及平均值。

public class E{ public static void main(String args[]){ Computer com = new Computer(); } } 
import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; public class Computer extends JFrame implements DocumentListener { JTextArea text1, text2; int count = 0; double sum = 0, aver = 0; Computer() { setLayout(new FlowLayout()); text1 = new JTextArea(6, 20); text2 = new JTextArea(6, 20); add(new JScrollPane(text1));// 滚动窗格 add(new JScrollPane(text2)); text2.setEditable(false);// 不可编辑 (text1.getDocument()).addDocumentListener(this);// 文本区调用getDocument方法放回所维护的文档,能触发DocumentEvent事件 setSize(300, 320); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } @Override public void insertUpdate(DocumentEvent e) { changedUpdate(e); } @Override public void removeUpdate(DocumentEvent e) { changedUpdate(e); } @Override public void changedUpdate(DocumentEvent e) { String s = text1.getText(); String[] a = s.split("[^0123456789.]+");// 正则表达式,除了0-9和小数点以外的字符作为分隔符 sum = 0; aver = 0; count = 0; for (int i = 0; i < a.length; i++) { try { sum = sum + Double.parseDouble(a[i]);// 转换为double类型 count++; } catch (Exception ee) { } } aver = sum / count; text2.setText(null); text2.append("\n和:" + sum); text2.append("\n平均值:" + aver); } } 

20170616143551097

(2)编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局,设计4个按钮,分别命名为“加”、“减”、“乘”、“除”,另外,窗口中还有3个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。要求处理NumberFormatException异常。

public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Face face = new Face(); } } 
import java.awt.Color; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class Face extends JFrame implements ActionListener { JButton jia; JButton jian; JButton cheng; JButton chu; JTextField one; JTextField two; JTextField three; JLabel label; public Face() { init(); setVisible(true); setResizable(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public void init() { setLayout(new FlowLayout()); setSize(300, 320); setTitle("计算"); jia = new JButton("加"); jian = new JButton("减"); cheng = new JButton("乘"); chu = new JButton("除"); one = new JTextField(10); two = new JTextField(10); three = new JTextField(10); label = new JLabel(" ", JLabel.CENTER); label.setBackground(Color.green); add(one); add(label); add(two); add(three); add(jia); add(jian); add(cheng); add(chu); jia.addActionListener(this); jian.addActionListener(this); cheng.addActionListener(this); chu.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { double n; if (e.getSource() == jia) { double n1, n2; try { n1 = Double.parseDouble(one.getText()); n2 = Double.parseDouble(two.getText()); n = n1 + n2; three.setText(String.valueOf(n)); label.setText("+"); } catch (NumberFormatException ee) { three.setText("请输入数字字符"); } } else if (e.getSource() == jian) { double n1, n2; try { n1 = Double.parseDouble(one.getText()); n2 = Double.parseDouble(two.getText()); n = n1 - n2; three.setText(String.valueOf(n)); label.setText("-"); } catch (NumberFormatException ee) { three.setText("请输入数字字符"); } } else if (e.getSource() == cheng) { double n1, n2; try { n1 = Double.parseDouble(one.getText()); n2 = Double.parseDouble(two.getText()); n = n1 * n2; three.setText(String.valueOf(n)); label.setText("*"); } catch (NumberFormatException ee) { three.setText("请输入数字字符"); } } else if (e.getSource() == chu) { double n1, n2; try { n1 = Double.parseDouble(one.getText()); n2 = Double.parseDouble(two.getText()); n = n1 / n2; three.setText(String.valueOf(n)); label.setText("/"); } catch (NumberFormatException ee) { three.setText("请输入数字字符"); } } validate(); } } 

20170616144003962

(3)

原文链接:https://blog.csdn.net/weixin_42148729/article/details/114898300?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165277096216782395372925%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165277096216782395372925&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-22-114898300-null-null.nonecase&utm_term=%E5%AE%9E%E7%94%A8%E6%95%99%E7%A8%8B

© 版权声明
THE END
喜欢就支持一下吧
点赞0打赏 分享
评论 抢沙发
头像
文明发言,共建和谐米科社区
提交
头像

昵称

取消
昵称表情图片

    暂无评论内容