《Java程序设计》实 验 报 告(四)
实验名称:java编程基础 |
实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse |
|
一、实验目的:
|
|
二、实验内容: 图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add 方法把组件加入到容器中。 1.学习Java布局管理,通过实例掌握流布局器,网格布局器和边界布局器. 参见8.4 布局管理器例题. 2. 在Jframe中添加标签、按钮并使用网格布局 程序功能:在Jframe框架中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。显示结果如图所示。 编辑 |
|
三、源代码 //GridLayoutFrameDemo.java package 实验4; import javax.swing.*; import java.awt.*; public class GridLayoutFrameDemo { public static void main(String[] args) { GridLayoutFrame g=new GridLayoutFrame(); g.setVisible(true); } } class GridLayoutFrame extends JFrame{ GridLayoutFrame(){ setTitle("标签与按钮"); setSize(300,200);//设置框架大小 setLocation(300,200);//设置框架在屏幕上的显示位置 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭 setLayout(new GridLayout(3,3));//设置框架使用3行3列的网格布局器 add(new JLabel("标签1")); for(int i=1;i<=3;i++) add(new JButton("按钮"+i)); add(new JLabel()); for(int i=4;i<=6;i++) add(new JButton("按钮"+i)); add(new JLabel("标签2")); } } 四、实验结果测试、收获与体会: 编辑 学习了Java布局管理,通过实例掌握了网格布局器和边界布局器。同时也学习到在Jframe中添加标签、按钮并使用网格布局。对图形用户界面有了进一步的学习与收获。 |
实验名称:java编程基础 |
实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse |
|
1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法, 2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 |
|
二、实验内容: 3. 在面板中添加组件 (1) 程序功能:在Jframe中添加面板容器,并分别在Jframe、面板容器中添加组件并使用不同的布局管理方式。 (2) 编写2.java 程序文件,显示结果如图所示。要求设置最底层的JFrmae容器为顺序布局,Jframe框架中直接添加一个标签,同时在Panel1中以边界布局添加四个方向按钮和一个标签.Panel2中以网格布局添加一个标签一个按钮。 编辑 |
|
三、源代码 //LayoutFrameDemo2.java package 实验4; import javax.swing.*; import java.awt.*; public class LayoutFrameDemo2 { public static void main(String[] args) { LayoutFrame g=new LayoutFrame(); g.setVisible(true); } } class LayoutFrame extends JFrame{ LayoutFrame(){ setTitle("标签与按钮"); setSize(400,400);//设置框架大小 setLocation(300,200);//设置框架在屏幕上的显示位置 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭 setLayout(new GridLayout(4,1));//设置框架使用4行1列的网格布局器 add(new JLabel("这是最底层的JFrame中的标签",SwingConstants.CENTER)); JPanel panel1=new JPanel(); panel1.setBackground(Color.blue); panel1.setLayout(new BorderLayout()); panel1.add(BorderLayout.EAST,new JButton("东")); panel1.add(BorderLayout.WEST,new JButton("西")); panel1.add(BorderLayout.SOUTH,new JButton("南")); panel1.add(BorderLayout.NORTH,new JButton("北")); panel1.add(BorderLayout.CENTER,new JLabel("这是在Panel1面板中部添加的标签",JLabel.CENTER)); add(panel1); JPanel panel2=new JPanel(); panel2.setBackground(Color.green); panel2.setLayout(new GridLayout(2,1)); panel2.add(new JLabel("这是在Panel2面板中的标签",JLabel.CENTER)); panel2.add(new JButton("Panel2中的按钮")); add(panel2); } } 四、实验结果测试、收获与体会: 编辑 学习了在Jframe中添加面板容器,并分别在Jframe、面板容器中添加组件并使用不同的布局管理方式。进一步学习了面板容器和Jframe的使用,对图形用户界面的编程有了进一步的提升。 |
实验名称:java编程基础 |
实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse |
|
一、实验目的: 1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法, 2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。 |
|
二、实验内容: 二.了解事件处理机制 在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。在Java 中能产生事件的组件叫做事件源,如按钮。如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。 在窗口中添加组件 (1)程序功能:在窗口中添加组件。 (2)编写程序文件,响应按钮事件,当按下显示按钮时,文本框1中显示此时用户名和电话,文本框2显示“你按下了“显示”按钮”。当按下退出时,程序关闭。 (3)编译并运行程序,界面窗口如图所示。 编辑 思考题:只要用户名和电话文本框中的文本内容发生改变,就在文本框1中显示变化的内容。如何实时动态监听文本变化?tf1.addActionListener();可以实现么?如果不能,该如何实现? 实现文本变化事件监听。 提示: Document dt = tf1.getDocument(); dt.addDocumentListener(new DocumentListener(){ public void insertUpdate(DocumentEvent e) {
} public void removeUpdate(DocumentEvent e) {
} public void changedUpdate(DocumentEvent e) {
} }); |
|
三、源代码 //TextFrameDemo.java package实验4; import javax.swing.*; import java.awt.*; import java.awt.event.*; publicclass TextFrameDemo { publicstaticvoid main(String[] args) { TextFrame g=new TextFrame(); g.setVisible(true); } } classTextFrameextendsJFrame{ private JTextArea ta; private JTextField name; private JTextField phone; private JTextField show; private JButton a,b; TextFrame(){ setTitle("文本框显示"); setBounds(200,300,370,280); setLayout(new FlowLayout()); ta=new JTextArea(7,30); add(ta); name=new JTextField(10); add(new JLabel("用户名")); add(name); phone=new JTextField(10); add(new JLabel("电话")); add(phone); show=new JTextField(15); add(show); a=new JButton("显示"); a.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e) { ta.setText("用户名:"+name.getText()+"\n"+"电话:"+phone.getText()); show.setText("你按下了“显示”按钮"); } }); add(a); b=new JButton("退出"); b.addActionListener(new ActionListener(){ publicvoid actionPerformed(ActionEvent e) { dispose(); } }); add(b); } } 四、实验结果测试、收获与体会: 编辑 从该实验中学习到了swing基本组件的使用,对文本框和文本域以及标签、按钮有了深度的学习,并且对java事件处理中的委托事件模型进行学习,对按钮的处理也有了进一步的提升。 |