java程序设计——实验四

《Java程序设计》实 验 报 告(四)

实验名称:java编程基础

实验地点10-306

所使用的工具软件及环境:

JDK1.7或1.8与Eclipse

一、实验目的:

    1. 了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,
    2. 了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。

二、实验内容:

图形用户界面(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));//设置框架使用33列的网格布局器

              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));//设置框架使用41列的网格布局器

              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.*;

public class TextFrameDemo {

    public static void main(String[] args) {

        TextFrame g=new TextFrame();

        g.setVisible(true);

    }

}

class TextFrame extends JFrame{

    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(){

            public void actionPerformed(ActionEvent e) {

                ta.setText("用户名:"+name.getText()+"\n"+"电话:"+phone.getText());

                show.setText("你按下了显示按钮");

            }

        });

        add(a);

        b=new JButton("退出");

        b.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e) {

                dispose();

            }

        });

        add(b);

    }

}

四、实验结果测试、收获与体会:

   

从该实验中学习到了swing基本组件的使用,对文本框和文本域以及标签、按钮有了深度的学习,并且对java事件处理中的委托事件模型进行学习,对按钮的处理也有了进一步的 提升。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平杨猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值