第九章习题※答案.doc

上传人:s****u 文档编号:13178063 上传时间:2020-06-06 格式:DOC 页数:20 大小:150.50KB
返回 下载 相关 举报
第九章习题※答案.doc_第1页
第1页 / 共20页
第九章习题※答案.doc_第2页
第2页 / 共20页
第九章习题※答案.doc_第3页
第3页 / 共20页
点击查看更多>>
资源描述
一、 填空题1. 定义Bean的类称为JavaBean组件或Bean组件,简称为组件。2. JavaBean必须实现接口java.io.Serializable或java.io.Externalizable。3. 类Component是所有UI组件和容器的根类。4. 方法repaint定义在类Component中,调用repaint方法会引起paintComponent方法的调用。5. 对字符串进行操作时经常使用trim方法,该方法的作用是删除字符串两端的空格。6. Java提供了五个实现菜单的类:JMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem和JRadioButtonMenuItem。7. 使用方法addSeparator()可以在菜单中添加一条分割线。8. JCheckBoxMenuItm是JMenuItem的子类,它在JMenuItem上添加一个布尔状态,该状态为真时,该项前显示对号。9.设置按钮上文本的方法名是_setText_,获取按钮上文本的方法名是_getText_。9. 设置文本域上文本的方法名是setText_,获取文本域上文本的方法名是_getText_,设置文本域可编辑属性的方法名是_setEditable_。二、 单项选择题1. JLabel继承了Jcomponent的所有属性,并具有Jbutton类的许多属性,下列不属于JLabel的属性的是( A )。A rows B text C icon D horizontalAlign2. javax.swing.ImageIcon是javax.swing.Icon的(B)。A 抽象类 B 子类 C 父类 D 基类三、 判断题1. TextField和TextArea是用来接受用户输入的组件,但是也可以由程序控制使用户不能在其中输入信息。2. 用hide()或setVisible(false)方法可以使组件隐藏不可见,但是一旦隐藏便不能恢复显示。3. 一个Button对象,可以调用方法getLabel()获取其上的标签,从而判断是哪个按钮;Label也使用相同的方法。4. 使用BorderLayout的容器最多只能放置5个组件,如果要放置更多的组件,则需要使用多层容器。5.使用GridLayout布局策略的容器中,所有的组件都有相同大小。答案:1. 对2. 错,可以恢复3. 后半句错4. 对5. .对四、 编程题1. 请编写一个Application,其功能为:在窗口上摆放两个标签。构造第一个标签时,令其上面的文本信息为“我将参加Java程序设计考试。”,将第二个标签构造为空标签。程序将第一个标签的信息复制到第二个标签上,并增加信息“希望自己考取好成绩。”。要求第一个标签以红色为背景,绿色为前景;第二个标签以绿色为背景,蓝色为前景。(知识点考察:定义标签,设置标签文本值和背景颜色)程序import java.awt.*;import javax.swing.*;class MyFrame extends JFrameJLabel p1=new JLabel(我将参加Java程序设计考试。);JLabel p2=new JLabel( );public MyFrame()this.getContentPane().setLayout(new FlowLayout();this.getContentPane().add(p1); this.getContentPane().add(p2); p2.setText(p1.getText( )+ 希望自己考取好成绩。);p1.setBackground(Color. red);p1.setForeground(Color.green);p2.setBackground(Color. green);p2.setForeground(Color.blue);public static void main(String args)MyFrame myFrame = new MyFrame();myFrame.setTitle(Show);myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myFrame.setSize(250,250);myFrame.setVisible(true);2. 请编写一个Application实现如下功能:定义一个用于给出提示信息的标签和两个文本框,其中,一个文本框用于获取用户给出的一个整数,求该数的平方后将计算结果置在另一个文本框中输出。(知识点考察:定义标签和文本框,数值型数据与字符串西相互转换)程序import java.awt.*;import javax.swing.*;import java.awt.event.*;class MyFrame extends JFrame implements ActionListener JLabel p; JTextField in,out; int x; String str= ;public MyFrame() p=new JLabel(请输入一个整数: ); in=new JTextField(18); out=new JTextField(18); this.getContentPane().setLayout(new FlowLayout(); this.getContentPane().add(p); this.getContentPane().add(in); this.getContentPane().add(out); in.addActionListener(this); public void actionPerformed(ActionEvent evt) x=Integer.parseInt(in.getText(); str=x+ 的平方为: +(long)(x*x); out.setText(str); public static void main(String args)MyFrame myFrame = new MyFrame();myFrame.setTitle(Show);myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myFrame.setSize(250,250);myFrame.setVisible(true);3. 请编写一个Application实现如下功能:定义三个文本框。其中,第一个文本框上面的文本信息为“请输入口令:”;第二个文本框为口令输入域;第三个文本框上的信息由程序设置:若口令(假设口令为字符串”MyKey”)正确,则设置为“通过!”,否则设置为“口令错!”;。(知识点考察:定义文本框,设置和获取文本框的文本值)程序import java.awt.*;import javax.swing.*;import java.awt.event.*;class MyFrame extends JFrame implements ActionListener JTextField p; JTextField in; JTextField out; String s=;public MyFrame() p=new JTextField (请输入口令: ); in=new JTextField(18); out=new JTextField(18); this.getContentPane().setLayout(new FlowLayout(); this.getContentPane().add(p); this.getContentPane().add(in); this.getContentPane().add(out); in.addActionListener(this); public void actionPerformed(ActionEvent evt) s=in.getText(); if(s.equals(MyKey) out.setText(通过!); else out.setText(口令错!); public static void main(String args)MyFrame myFrame = new MyFrame();myFrame.setTitle(Show);myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myFrame.setSize(250,250);myFrame.setVisible(true);4. 编写Application, 其中包含两个按钮b1、b2,初始时b1的前景为兰色,b2的前景为红色,它们的标签分别为”兰按钮”、”红按钮”。无论哪个按钮被点击,都将该按钮上的标记改为“已按过”,并使该按钮变灰。(知识点考察:定义并设置按钮的前景色和背景色,点击按钮触发事件处理过程)程序import java.awt.*;import javax.swing.*;import java.awt.event.*;class MyFrame extends JFrame implements ActionListener int i;JButton b1,b2;public MyFrame()b1=new JButton(兰按钮);b2=new JButton(红按钮);this.getContentPane().setLayout(new FlowLayout();this.getContentPane().add(b1);b1.setForeground(Color.blue);this.getContentPane().add(b2); b2.setForeground(Color.red);b1.addActionListener(this);b2.addActionListener(this); public void actionPerformed(ActionEvent e) if(e.getSource()=b1) b1.setText(已按过); b1.setForeground(Color.gray); if(e.getSource()=b2)b2.setText(已按过); b2.setForeground(Color.gray); public static void main(String args)MyFrame myFrame = new MyFrame();myFrame.setTitle(Show);myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myFrame.setSize(250,250);myFrame.setVisible(true);5. 请编写一个Applicaion,其功能为:在其窗口中摆放三个单选按钮,令它们的标签分别为“选项1”、“选项2”、“选项3”, 初始时,所有按钮均可见;以后,如果某个单选按钮被选中了,就通过消息对话框显示它被选中的信息(如,若点击了第二个单选按钮,则显示“你选择了”选项2”), 并使该单选按钮自身不可见,而使其它单选按钮变为可见的。(知识点考察:定义单选按钮和消息提示框,点击按钮触发事件处理过程,修改提示框的visible属性)程序import java.awt.*;import javax.swing.*;import java.awt.event.*;class MyFrame extends JFrame implements ActionListener ButtonGroup optGroup;JRadioButton opt1,opt2,opt3;String s=;boolean b=false;public MyFrame()optGroup=new ButtonGroup( );opt1=new JRadioButton(选项1);opt2=new JRadioButton(选项2);opt3=new JRadioButton(选项3);optGroup.add(opt1);optGroup.add(opt2);optGroup.add(opt3);this.getContentPane().setLayout(new FlowLayout();this.getContentPane().add(opt1);this.getContentPane().add(opt2);this.getContentPane().add(opt3);opt1.addActionListener(this);opt2.addActionListener(this);opt3.addActionListener(this); public void actionPerformed(ActionEvent e)if(e.getSource()=opt1) JOptionPane.showMessageDialog(this,你选择了选项1);opt1.setVisible(false);opt2.setVisible(true); opt3.setVisible(true); if(e.getSource()=opt2) JOptionPane.showMessageDialog(this,你选择了选项2);opt1.setVisible(true);opt2.setVisible(false); opt3.setVisible(true); if(e.getSource()=opt3) JOptionPane.showMessageDialog(this,你选择了选项3);opt1.setVisible(true);opt2.setVisible(true); opt3.setVisible(false); public static void main(String args)MyFrame myFrame = new MyFrame();myFrame.setTitle(Show);myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myFrame.setSize(250,250);myFrame.setVisible(true);7. 请编写一个Applet,在其窗口中摆放两复选按钮框,通过一个文本域显示它们被选中(那个被选中、或两个均被选中、或两个均未选中)的信息。(知识点考察:定义复选按钮,点击按钮触发事件处理过程)程序import java.awt.*;import javax.swing.*;import java.awt.event.*;class MyFrame extends JFrame implements ItemListener private JTextField t;private JCheckBox opt1,opt2;public MyFrame()t=new JTextField(20); this.getContentPane().setLayout(new FlowLayout();this.getContentPane().add(t);opt1=new JCheckBox(选项1); this.getContentPane().add(opt1); opt1.addItemListener(this); opt2=new JCheckBox(选项2); this.getContentPane().add(opt2); opt2.addItemListener(this); public void itemStateChanged(ItemEvent e)String s=;if(opt1.isSelected() s=选择了选项1; if(opt2.isSelected() s=s+选择了选项2; t.setText(s); public static void main(String args)MyFrame myFrame = new MyFrame();myFrame.setTitle(Show);myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myFrame.setSize(250,250);myFrame.setVisible(true);8. 程序在画板中显示一条信息,并利用两个按钮up和down上下移动该信息。程序输出结果如下图所示。(知识点考察:点击按钮触发事件处理过程,注册监听器)答案:import java.awt.*;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import javax.swing.*;public class ButtonDemo extends JFrame implements ActionListener / Declare a panel for displaying message private MessagePanel messagePanel; / Declare two buttons to move the message left and right private JButton jbtUp, jbtDown; / Main method public static void main(String args) ButtonDemo frame = new ButtonDemo(); / frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); public ButtonDemo() setTitle(Button Demo); / Create a MessagePanel instance and set colors messagePanel = new MessagePanel(Welcome to Java); messagePanel.setBackground(Color.yellow); / Create Panel jpButtons to hold two Buttons JPanel jpButtons = new JPanel(); jpButtons.setLayout(new FlowLayout(); jpButtons.add(jbtUp = new JButton(); jpButtons.add(jbtDown = new JButton(); / Set button text jbtUp.setText(Up); jbtDown.setText(Down); / Set keyboard mnemonics jbtUp.setMnemonic(U); jbtDown.setMnemonic(D); / Set icons /jbtUp.setIcon(new ImageIcon(images/left.gif); /jbtDown.setIcon(new ImageIcon(images/right.gif); / Set toolTipText on the Up and Down buttons jbtUp.setToolTipText(Move message to Up); jbtDown.setToolTipText(Move message to Down); / Place panels in the frame getContentPane().setLayout(new BorderLayout(); getContentPane().add(messagePanel, BorderLayout.CENTER); getContentPane().add(jpButtons, BorderLayout.SOUTH); / Register listeners with the buttons jbtUp.addActionListener(this); jbtDown.addActionListener(this); / Handle button events public void actionPerformed(ActionEvent e) if (e.getSource() = jbtUp) up(); else if (e.getSource() = jbtDown) down(); / Move the message in the panel left private void up() int y = messagePanel.getYCoordinate(); if (y 10) / Shift the message to the left messagePanel.setYCoordinate(y-10); messagePanel.repaint(); / Move the message in the panel right private void down() int y = messagePanel.getYCoordinate(); if (y getSize().width - 120) / Shift the message to the right messagePanel.setYCoordinate(y+10); messagePanel.repaint(); 9 .使用文本区和滚动条技术相结合显示一段字符串,程序输出结果如下图所示。(知识点考察:定义文本区,设置滚动条)答案:import java.awt.*;import javax.swing.*;public class TextAreaDemo extends JFrame private DescriptionPanel descriptionPanel = new DescriptionPanel(); public static void main(String args) TextAreaDemo frame = new TextAreaDemo(); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setTitle(Text Area Demo); frame.setVisible(true); public TextAreaDemo() String description = Task scheduling is of great significance to + shorten performing time and minimize the cost for computational + Grid. A grid task schedule algorithm is presented in this paper, + which is based on a constraint satisfaction neural network. The + constraint satisfaction means to remove the violations for sequence+ and resource constraints during scheduling subtasks for grid + environment. The data-transferring costs among subtasks are also+ considered in our task scheduling. The simulation in this paper+ has shown that the task schedule algorithm is efficient with respect+ to the quality of solutions and the solving speed. ; descriptionPanel.setTextDescription(description); getContentPane().setLayout(new BorderLayout(); getContentPane().add(descriptionPanel, BorderLayout.CENTER); class DescriptionPanel extends JPanel private JTextArea jtaTextDescription; public DescriptionPanel() JScrollPane scrollPane = new JScrollPane (jtaTextDescription = new JTextArea(); jtaTextDescription.setFont(new Font(Serif, Font.PLAIN, 14); jtaTextDescription.setLineWrap(true); jtaTextDescription.setWrapStyleWord(true); scrollPane.setPreferredSize(new Dimension(200, 100); setLayout(new BorderLayout(); add(scrollPane, BorderLayout.CENTER); public void setTextDescription(String text) jtaTextDescription.setText(text); 10. 编写一个程序,包含4个button,各代表正方形,矩形,圆和椭圆,如下图所示。(知识点考察:按钮触发事件过程,绘制正方形、矩形、圆和椭圆)答案:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TextFieldDemo extends JFrame implements ActionListener private JButton jbtSquare,jbtRectangle,jbtCircle,jbtOvel; / Declare Add button FigurePanel p1 = new FigurePanel(1); public static void main(String args) TextFieldDemo frame = new TextFieldDemo(); frame.setSize(400,300); frame.setVisible(true); public TextFieldDemo() setTitle(TextFieldDemo); setBackground(Color.yellow); setForeground(Color.black); JPanel p2 = new JPanel(); p2.setLayout(new FlowLayout(); p2.add(jbtSquare = new JButton(Square); p2.add(jbtRectangle = new JButton(Rectangle); p2.add(jbtCircle = new JButton(Circle); p2.add(jbtOvel = new JButton(Ovel); getContentPane().setLayout(new BorderLayout(); getContentPane().add(p1, BorderLayout.CENTER); getContentPane().add(p2, BorderLayout.SOUTH); jbtSquare.addActionListener(this); jbtRectangle.addActionListener(this); jbtCircle.addActionListener(this); jbtOvel.addActionListener(this); public void actionPerformed(ActionEvent e) if (e.getSource() = jbtSquare) p1.setFigure(1); p1.repaint(); if (e.getSource() = jbtRectangle) p1.setFigure(2); p1.repaint(); if (e.getSource() = jbtCircle) p1.setFigure(3); p1.repaint(); if (e.getSource() = jbtOvel) p1.setFigure(4); p1.repaint(); class FigurePanel extends JPanel final static int SQUARE = 1; final static int RECTANGLE = 2; final static int CIRCLE = 3; final static int OVAL = 4; private int figureType = 1; / Constructing a figure panel public FigurePanel(int figureType) this.figureType = figureType; public void setFigure(int figureType) this.figureType = figureType; / Drawing a figure on the panel public void paintComponent(Graphics g) super.paintComponent(g); / Get the appropriate size for the figure int width = getSize().width; int height = getSize().height; int side = (int)(0.80*Math.min(width, height); switch (figureType) case 1: g.drawRect(width-side)/2, (height-side)/2, side, side); break; case 2: g.drawRect(int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height); break; case 3: g.drawOval(width-side)/2, (height-side)/2, side, side); break; case 4: g.drawOval(int)(0.1*width), (int)(0.1*height), (int)(0.8*width), (int)(0.8*height); break; 11请编程实现本界面:同时,利用事件处理机制实现功能:当点击图中的下拉列表框时,将会在下面的文本框中显示当前选项。(知识点考察:定制下拉列表框,点击下拉列表触发事件发生)答案:import java.awt.*;import javax.swing.*;import java.awt.event.*;class ShowChoose extends JFrame implements ItemListenerJComboBox jcb;JTextField jtf;JLabel l1,l2;ShowChoose()l1=new JLabel(请选择您的学校:);l2=new JLabel(您的选择是:);jtf=new JTextField(10);String school=清华大学,北京大学,大连理工,东软信息学院;jcb=new JComboBox(school);getContentPane().setLayout(new FlowLayout();getContentPane().add(l1);getContentPane().add(jcb);getContentPane().add(l2);getContentPane().add(jtf);jcb.addItemListener(this);setSize(300,200);setVisible(true);public void itemStateChanged(ItemEvent e)jtf.setText(String)(jcb.getSelectedItem();public static void main(String args)ShowChoose sc=new ShowChoose();12下图中的框架采用BorderLayout布局,中间放置一个面板,南面放置一个按钮,当点击按钮时,面板的背景色随机变换,请编程实现该程序。(知识点考察:BorderLayout布局管理器,按钮触发事件处理器,面板背景色的设置)答案:import java.awt.*;import javax.swing.*;import java.awt.event.*;class ChangeColor extends JFrame implements ActionListenerJButton jbtChange;JPanel p;ChangeColor()jbtChange=new JButton(改变颜色);p=new JPanel();getContentPane().add(p);getContentPane().add(jbtChange,BorderLayout.SOUTH);setSize(150,200);setVisible(true);jbtChange.addActionListener(this);public void actionPerformed(ActionEvent e)p.setBackground(new Color(int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256);public static void main(String args)ChangeColor c=new ChangeColor();13请编程实现一个乘法器,两个操作数和计算结果用文本框表示,当用户在操作数文本框中输入整型数字后,点击“”按钮就能够在结果文本框中看到乘法运算的结果。如下图所示:(知识点考察:定义文本框,整型与字符串类型的相互转换,设置文本框文本值)答案:import java.awt.*;import javax.swing.*;import java.awt.event.*;class Mul extends JFrame implements ActionListenerJTextField jnum1,jnum2,jresult;JLabel lb;JButton jbtMul;Mul()jnum1=new JTextField(6);jnum2=new JTextField(6);jresult=new JTextField(6);jresult.setEditable(false);lb=new JLabel( * );jbtMul=new JButton( = ); getContentPane().setLayout(new FlowLayout();getContentPane().add(jnum1);getContentPane().add(lb);getContentPane().add(jnum2);getContentPane().add(jbtMul);getContentPane().add(jresult);jresult.addActionListener(this);setSize(380,150);setVisible(true);jbtMul.addActionListener(this);public void actionPerformed(ActionEvent e)int i=Integer.parseInt(jnum1.getText()*Integer.parseInt(jnum2.getText();jresult.setText(i+);public static void main(String args)Mul m=new Mul();14.编写一个图形界面应用程序,其中包含一个文本框JtextField。在文本框中输入内容后弹出一个JoptionPane消息对话框,对话框的显示内容为文本框中的内容。(知识点考察:定义文本框,使用消息文本框显示信息)import javax.swing.*;import java.awt.*;import java.awt.event.*;public class JOptionPaneExample extends JPanel JTextField text; JOptionPaneExample() text=new JTextField(30); text.selectAll(); text.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.selectAll(); JOptionPane.showMessageDialog(null,text.getText(); ); this.add(text); public static void main(String args) JFrame frame=new JFrame(JOptionPane Example); frame.addWindowListener(new CloseWindow(); frame.getContentPane().add(new JOptionPaneExample(); frame.pack(); frame.setVisible(true); class CloseWindow extends WindowAdapterpublic void windowClosing(WindowEvent e)System.exit(0);15.编写一个图形界面应用程序,当用户每单击一下按钮时,一个标签对象的前景颜色随即发生一次变化。(知识点考察:点击按钮触发事件发生,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!