《面向对象程序设计》实验指导书 下载本文

内容发布更新时间 : 2024/6/6 7:35:58星期一 下面是文章的全部内容请认真阅读。

} B(int i) { a=b=i; System.out.println(\ } B(int i,int j) { a=i; b=j; System.out.println(\ } void print() { System.out.println(\ } }

(3)编译并运行程序 四、思考题

1.说明什么是构造方法。

2.说明程序中有多个类时如何确定源程序文件的名称。

3.说明类的继承和多态有什么作用,在使用上应该注意什么问题。

实验三 GUI图形界面设计实验

一、实验目的

1.了解图形用户界面基本组件(窗口、按钮、文本框、选择框、滚动条等)的使用方法。 2.掌握如何使用布局管理器对组件进行管理。 3.理解Java的事件处理机制。 二、实验要求

1.掌握在容器中添加组件的方法。

2.掌握使用布局管理器对组件进行管理的方法。

3.理解Java的事件处理机制、掌握为不同组件编写事件处理程序的方法。 4.掌握编写独立运行的窗口界面的方法。 三、实验内容

(一)创建图形用户界面

图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add方法把组件加入到容器中。

在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。在Java 中能产生事件的组件叫做事件源,如按钮。如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。 1.创建一个窗口界面

(1)程序功能:创建一个具有关闭功能的空白窗口。 (2)编写MyFrame.java程序文件,源代码如下: import javax.swing.*; import java.awt.event.*;

public class MyFrame extends JFrame { public static void main(String[] args) { new MyFrame(); } MyFrame() { setTitle(\初始窗口\创建窗口对象 setSize(400,300);//设置窗口大小 setVisible(true);//设置窗口是可视的 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

}

(3)编译MyFrame.java,产生类文件MyFrame.class。 (4)运行该程序 2.在窗口中添加组件

(1)程序功能:在窗口中添加组件。

(2)编写MyFrame.java程序文件,源代码如下: import java.awt.*; import javax.swing.*; import java.awt.event.*;

public class MyFrame extends JFrame { JButton sendbt; JTextField inputField; JTextArea chatContent; public static void main(String[] args) { new MyFrame(); } MyFrame() { setTitle(\初始窗口\创建窗口对象 setSize(400,300);//设置窗口大小 setLayout(new BorderLayout());//边界布局 chatContent = new JTextArea(12, 34); // 创建一个文本域 // 创建一个滚动面板,将文本域作为其显示组件 JScrollPane showPanel = new JScrollPane(chatContent); chatContent.setEditable(false); // 设置文本域不可编辑 JPanel inputPanel = new JPanel(); // 创建一个JPanel面板 inputField = new JTextField(20); // 创建一个文本框 sendbt = new JButton(\发送\ // 创建一个发送按钮 // 为按钮添加事件 sendbt.addActionListener(new ActionListener() { // 为按钮添加一个监听事件 public void actionPerformed(ActionEvent e) {// 重写actionPerformed方法 String content = inputField.getText(); // 获取输入的文本信息 // 判断输入的信息是否为空 if (content != null && !content.trim().equals(\

// 如果不为空,将输入的文本追加到到聊天窗口 chatContent.append(\本人:\ } else {

// 如果为空,提示聊天信息不能为空 chatContent.append(\聊天信息不能为空\ } inputField.setText(\ // 将输入的文本域内容置为空 }

}); Label label = new Label(\聊天信息\创建一个标签 inputPanel.add(label); // 将标签添加到JPanel面板 inputPanel.add(inputField); // 将文本框添加到JPanel面板 inputPanel.add(sendbt); // 将按钮添加到JPanel面板 // 将滚动面板和JPanel面板添加到JFrame窗口 this.add(showPanel, BorderLayout.CENTER); this.add(inputPanel, BorderLayout.SOUTH); setVisible(true);//设置窗口是可视的 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

(3)编译MyFrame.java,产生类文件MyFrame.class。 (4)运行该程序 3. 为窗口添加菜单

(1)程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和2级菜单,通过选择菜单项可以执行不同操作,如“打开” MyFrame类生成的窗口。 (2)编写MyFrame.java程序文件,源代码如下: import java.awt.*; import javax.swing.*; import java.awt.event.*;

public class MyFrame extends JFrame { JButton sendbt; JTextField inputField; JTextArea chatContent; JMenuBar mb; // 以下生成菜单组件对象 JMenu m1; JMenuItem open; JMenuItem close; JMenuItem exit; JMenu m12; JMenuItem copy; JMenuItem cut; JMenuItem paste; JMenu m2; JMenuItem content; JMenuItem index; JMenuItem about; public static void main(String[] args) { new MyFrame();

} MyFrame() { setTitle(\初始窗口\创建窗口对象 setSize(400,300);//设置窗口大小 setLayout(new BorderLayout());//边界布局 chatContent = new JTextArea(12, 34); // 创建一个文本域 // 创建一个滚动面板,将文本域作为其显示组件 JScrollPane showPanel = new JScrollPane(chatContent); chatContent.setEditable(false); // 设置文本域不可编辑 JPanel inputPanel = new JPanel(); // 创建一个JPanel面板 inputField = new JTextField(20); // 创建一个文本框 sendbt = new JButton(\发送\ // 创建一个发送按钮 // 为按钮添加事件 sendbt.addActionListener(new ActionListener() { // 为按钮添加一个监听事件 public void actionPerformed(ActionEvent e) {// 重写actionPerformed方法 String content = inputField.getText(); // 获取输入的文本信息 // 判断输入的信息是否为空 if (content != null && !content.trim().equals(\

// 如果不为空,将输入的文本追加到到聊天窗口 chatContent.append(\本人:\ } else {

// 如果为空,提示聊天信息不能为空 chatContent.append(\聊天信息不能为空\ } inputField.setText(\ // 将输入的文本域内容置为空 } }); Label label = new Label(\聊天信息\创建一个标签 inputPanel.add(label); // 将标签添加到JPanel面板 inputPanel.add(inputField); // 将文本框添加到JPanel面板 inputPanel.add(sendbt); // 将按钮添加到JPanel面板 // 将滚动面板和JPanel面板添加到JFrame窗口 this.add(showPanel, BorderLayout.CENTER); this.add(inputPanel, BorderLayout.SOUTH); mb=new JMenuBar(); // 以下生成菜单组件对象 m1=new JMenu(\文件\ open=new JMenuItem(\打开\ close=new JMenuItem(\关闭\ exit=new JMenuItem(\退出\ m12=new JMenu(\编辑\ copy=new JMenuItem(\复制\ cut=new JMenuItem(\剪切\