辽宁工程技术大学上机实验报告实验名称实验七swing及事件院系理学院专业理科实验班班级理科13-1姓名学号1311060127日期2015/5/6实验目的简述本次实验目的:(1)熟悉AWT标签、文本框、按钮等组件的使用方法。(2)熟悉事件处理方法实验准备你为本次实验做了哪些准备:课下复习老师上课讲的关于面板的设置等有关知识,实践运用了文本框的组件、按钮的设置,熟悉了时间的处理方法。实验进度本次共有3个练习,完成3个。实验总结日本次实验的收获、体会、经验、问题和教训:这次实验我更加体会到了JAVA的用途,一个简单的面板是通过程序实现的,应用广泛,我应该更好的学习。教师评语成绩实验要求:(1)组件在窗口中的位置尽量按要求摆放。(2)响应窗口的环比事件。(3)实验四不需要写在报告上。实验内容:(1)设计一个简易计算器,在“操作数”标签右侧的两个文本框输入操作数,当单击“+,-,*,/”按钮时,对两个操作数进行运算并将结果填到“结果”标签右侧的文本框中。程序:importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.text.DecimalFormat;importjavax.swing.*;importjavax.swing.border.LineBorder;importjavax.swing.text.JTextComponent;classMyAppextendsJFrame{JTextFieldb1=newJTextField(0,12);JTextFieldb2=newJTextField(0,12);JTextFieldb3=newJTextField(0,12);JTextFieldb4=newJTextField(0,12);MyApp(){super(简易计算器);Containerc=getContentPane();c.setLayout(newFlowLayout());JPanela1=newJPanel(newFlowLayout());JPanela2=newJPanel(newFlowLayout());JPanela3=newJPanel(newFlowLayout());JPanela4=newJPanel(newFlowLayout());JPanela5=newJPanel(newFlowLayout());JLabeljb1=newJLabel(数字一:);JLabeljb2=newJLabel(数字二:);JLabeljb3=newJLabel(操作:);JLabeljb4=newJLabel(结果:);JButtonc1=newJButton(+);JButtonc2=newJButton(-);JButtonc3=newJButton(*);JButtonc4=newJButton(/);JButtonc5=newJButton(重置);a1.add(jb1);a1.add(b1);a2.add(jb2);a2.add(b2);a3.add(jb3);a3.add(c1);a3.add(c2);a3.add(c3);a3.add(c4);a4.add(jb4);a4.add(b4);a5.add(c5);c.add(a1);c.add(a2);c.add(a3);c.add(a4);c.add(a5);c1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E1(e);}});c2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E2(e);}});c3.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E3(e);}});c4.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E4(e);}});c5.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E5(e);}});setSize(270,250);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}protectedvoidE1(ActionEvente){doublez1=Double.parseDouble(b1.getText());doublez2=Double.parseDouble(b2.getText());DecimalFormatf1=newDecimalFormat(#.000);Strings1=f1.format(z1+z2);b4.setText(s1);}protectedvoidE2(ActionEvente){doublez1=Double.parseDouble(b1.getText());doublez2=Double.parseDouble(b2.getText());DecimalFormatf1=newDecimalFormat(#.000);Strings1=f1.format(z1-z2);b4.setText(s1);}protectedvoidE3(ActionEvente){doublez1=Double.parseDouble(b1.getText());doublez2=Double.parseDouble(b2.getText());DecimalFormatf1=newDecimalFormat(#.000);Strings1=f1.format(z1*z2);b4.setText(s1);}protectedvoidE4(ActionEvente){doublez1=Double.parseDouble(b1.getText());doublez2=Double.parseDouble(b2.getText());DecimalFormatf1=newDecimalFormat(#.000);if(z2!=0){Strings1=f1.format(z1/z2);b4.setText(s1);}else{b4.setText(Error!);}}protectedvoidE5(ActionEvente){b1.setText(0);b2.setText(0);b4.setText(0);}publicstaticvoidmain(Stringargs[]){newMyApp();}}结果:(加法)(2)编写文本移动程序,窗口中有两个文本区和两个按钮,文本区分别位于窗口的左边和右边区域,2个按钮位于窗口的中间区域,当单击“→”按钮时,将左边文本区选中的内容添加到右侧的文本区的末尾。当单击“←”按钮时,将右侧文本区中选定的内容添加到左侧文本区的末尾。提示:在文本区中可以使用getSelectedText方法获得通过鼠标拖动选定的文本,可以将“→”和“←”按钮放入Panel组件中,再将Panel组件加入窗口中。程序:importjava.awt.*;importjava.awt.event.*;importjava.text.DecimalFormat;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextArea;importjavax.swing.JTextField;classMyApp1extendsJFrame{JTextAreab1=newJTextArea(5,15);JTextAreab2=newJTextArea(5,15);MyApp1(){super(文本移动);Containerc=getContentPane();c.setLayout(newFlowLayout());JPanela1=newJPanel(newBorderLayout());JPanela2=newJPanel(newBorderLayout());JPanela3=newJPanel(newBorderLayout());JPanela4=newJPanel(newFlowLayout());JLabeljb1=newJLabel(文本1);JLabeljb2=newJLabel(文本2);JButtonc1=newJButton(←);JButtonc2=newJButton(→);JButtonc3=newJButton(清除);a1.add(jb1);a1.add(b1,BorderLayout.EAST);a2.add(c1,BorderLayout.NORTH);a2.add(c2,BorderLayout.SOUTH);a3.add(jb2);a3.add(b2,BorderLayout.WEST);a4.add(c3);c.add(a1);c.add(a2);c.add(a3);c.add(a4);c1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E1(e);}});c2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E2(e);}});c3.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){E3(e);}});setSize(500,180);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}protectedvoidE1(ActionEvente){Stringz1=b1.getText()+b2.getSelectedText();b1.setText(z1);}protectedvoidE2(ActionEvente){Stringz1=b2.getText()+b1.getSelectedText();b2.setText(z1);}protectedvoidE3(ActionEvente){b1.setText();b2.setText();}publicstaticvoidmain(Stringargs[]){newMyApp1();}}结果:(3)编写“背单词”的程序。系统从词库中随机抽取英文单词,通过一个JLabel组件显示对应的中文,让用户在JTextField组件中输入英文单词。如果用户输入的英文单词出错,按回车键后,系统在另一个JLabel组件显示“对不起!答错了!”,直到用户输入的英文单词,按回车键后,系统显示“恭喜你!答对了!”。该过程可以持续进行,直到用户终止程序。(提示:英文词库和对应的中文词库可以通过字符串数组实现。)程序:packagezhang;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.*;publicclassCopy