Java(A)实验指导(3)

2019-08-03 13:39

实验3:GUI编程

一、实验目的

1. 2. 3. 4.

掌握Java图形组件和布局管理器的使用 理解和掌握Java事件处理机制的使用。 掌握图形界面的各种常用控件的使用。 掌握常用对话框的使用。

二、实验要求

本次实验要求以Eclipse为开发平台。

三、实验内容与步骤

1.编写一个Java Application程序,该程序的运行结果如下所示。

2.编写一个Java Application程序,用GridLayout布局方式放置4个按钮,按钮背景为红、绿、蓝、黄色。该程序的运行结果如下所示。

3.编写一个Java Application程序,该程序的运行结果如下所示。

1

4. 编写程序,要求显示一个 300×100 像素的窗口,窗口中包含两个按钮和一个标签。当点击第一个按钮时,窗口标签中显示”button1 is pressed”; 当点击第二个按钮时,退出应用程序。如下图所示。

5.设计一个简单计算器,如下图所示。在“操作数:”标签右侧的两个文本框输入操作数,当单击操作符+,-,*,/按钮时,对两个操作数进行运算并将结果填入到“结 果:”标签右侧的文本框中。该程序模板已给出,请在要求位置补充若干代码,以完成程序要求的功能。

6.下面的程序是在顶层容器JFrame中创建一个表格,并在表格中显示两行内容。请将程序补充完整并上机运行。

import javax.swing.*; import java.awt.*;

import java.awt.event.*; public class jtable{ public jtable(){

JFrame f=new JFrame();

Object[][] playerInfo={

{\张华\Integer(66),new Integer(32),new Integer(98),new Boolean(false)},

{\阿宝\Integer(82),new Integer(69),new Integer(151),new

2

Boolean(true)},

};

String[] Names={\姓名\语文\数学\总分\及格\

//利用构造方法JTable(Object data[][], Object columnName[])创建表格对象

JTable table=new JTable( (1) );

JScrollPane scrollPane=new JScrollPane( (2) );//表格使用滚动面板 f.getContentPane().add( (3) ); //加到容器中 f.setTitle(\

f.setBounds(100, 100, 400, 200); f.setVisible(true);

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) { System.exit(0); } }); }

public static void main(String[] args){ jtable b=new (4) ; } }

7.编写一个算术测试小软件,用来训练小学生的算术能力。程序有3个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确。ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MailClass是软件的主类。请按如下的程序模板中的要求,将【代码】替换为Java程序代码,以完成该程序。 MainClass.java清单:

public class MainClass {

public static void main(String args[]) { ComputerFrame frame;

frame=new ComputerFrame(); frame.setTitle(\算术测试\ frame.setBounds(100,100,650,180); } }

ComputerFrame.java清单:

import java.awt.*;

import java.awt.event.*; import javax.swing.*;

public class ComputerFrame extends JFrame { JMenuBar menubar;

JMenu choiceGrade; //选择级别的菜单 JMenuItem grade1,grade2;

JTextField textOne,textTwo,textResult; JButton getProblem,giveAnwser; JLabel operatorLabel,message; Teacher teacherZhang; ComputerFrame() {

3

teacherZhang=new Teacher(); teacherZhang.setMaxInteger(20); setLayout(new FlowLayout()); menubar = new JMenuBar();

choiceGrade = new JMenu(\选择级别\ grade1 = new JMenuItem(\幼儿级别\ grade2 = new JMenuItem(\儿童级别\

grade1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { teacherZhang.setMaxInteger(10); } });

grade2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { teacherZhang.setMaxInteger(50); } }); choiceGrade.add(grade1); choiceGrade.add(grade2); menubar.add(choiceGrade); setJMenuBar(menubar);

【代码1】 //创建textOne,其可见字符长是5 textTwo=new JTextField(5);

textResult=new JTextField(5); operatorLabel=new JLabel(\

operatorLabel.setFont(new Font(\ message=new JLabel(\你还没有回答呢\ getProblem=new JButton(\获取题目\ giveAnwser=new JButton(\确认答案\ add(getProblem); add(textOne);

add(operatorLabel); add(textTwo);

add(new JLabel(\ add(textResult); add(giveAnwser); add(message);

textResult.requestFocus(); textOne.setEditable(false); textTwo.setEditable(false);

getProblem.setActionCommand(\ textResult.setActionCommand(\ giveAnwser.setActionCommand(\

teacherZhang.setJTextField(textOne,textTwo,textResult); teacherZhang.setJLabel(operatorLabel,message);

【代码2】//将teacherZhang注册为getProblem的ActionEvent事件监视器 【代码3】//将teacherZhang注册为giveAnwser的ActionEvent事件监视器 【代码4】//将teacherZhang注册为textResult的ActionEvent事件监视器 setVisible(true);

4

validate();

setDefaultCloseOperation(EXIT_ON_CLOSE); } }

Teacher.java清单:

import java.util.Random; import java.awt.event.*; import javax.swing.*;

public class Teacher implements ActionListener { int numberOne,numberTwo; String operator=\ boolean isRight;

Random random; //用于给出随机数 int maxInteger; //题目中最大的整数 JTextField textOne,textTwo,textResult; JLabel operatorLabel,message; Teacher() {

random = new Random(); }

public void setMaxInteger(int n) { maxInteger=n; }

public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); if(str.equals(\ numberOne = random.nextInt(maxInteger)+1;//1至maxInteger之间的随机数; numberTwo=random.nextInt(maxInteger)+1;

double d=Math.random(); // 获取(0,1)之间的随机数 if(d>=0.5)

operator=\ else

operator=\

textOne.setText(\ textTwo.setText(\ operatorLabel.setText(operator); message.setText(\请回答\ textResult.setText(null); }

else if(str.equals(\

String answer=textResult.getText();

try{ int result=Integer.parseInt(answer); if(operator.equals(\

if(result==numberOne+numberTwo) message.setText(\你回答正确\ else

message.setText(\你回答错误\ }

else if(operator.equals(\

5


Java(A)实验指导(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:仁义礼智信名言警句

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: