77范文网 - 专业文章范例文档资料分享平台

java实验 JAVA Swing 图形用户界面和对话框

来源:网络收集 时间:2019-03-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

JAVA实验报告

课程名称 java实验 实验名称 JAVA Swing 图形用户界面和对话框

学 院__计算机学院__ 专业班级__软件 __ 姓 名__ ____ 学号_ __实验日期:2015年4月30 日

一.实验目的

(1) 学习处理ActionEven事件; (2) 学习使用布局类;

(3) 学习焦点、鼠标和键盘事件; (4) 学习使用对话框。

二.实验内容

(-)实验题目一:算术测试 ,编写一个算术测试小软件,用来训练小学生的算术能力。

1.要点分析: 程序有三个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确。ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面给出题目的答案;MainClass是软件的主类。 2.程序源代码:

package 算术测试;

public class MainClass {

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

frame=new ComputerFrame(); frame.setTitle(\算术测试\);

frame.setBounds(100,100,650,180); } }

package 算术测试; import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ComputerFrame extends JFrame {

1

JMenuBar menubar; JMenu choiceGrade;

JMenuItem grade1,grade2;

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

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);

textOne=new JTextField(5);//创建文本框,其可见字符长为5 textTwo=new JTextField(5); textResult=new JTextField(5); operatorLabel=new JLabel(\);

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

add(operatorLabel); add(textTwo);

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

2

add(giveAnswer); add(message);

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

getProblem.setActionCommand(\); textResult.setActionCommand(\); giveAnswer.setActionCommand(\);

teacherZhang.setJTextField(textOne,textTwo,textResult); teacherZhang.setJLabel(operatorLabel,message); getProblem.addActionListener(teacherZhang); giveAnswer.addActionListener(teacherZhang); textResult.addActionListener(teacherZhang); setVisible(true); validate();

setDefaultCloseOperation(DISPOSE_ON_CLOSE); } }

package 算术测试;

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

public class Teacher implements ActionListener{ int numberOne,numberTwo; String operator=\; boolean isRigth; 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~最大整数之间的随机数

numberTwo=random.nextInt(maxInteger)+1; double d=Math.random();//获取0~1之间的随机数

3

if(d>=0.5)

operator=\; else

operator=\;

textOne.setText(\+numberOne); textTwo.setText(\+numberTwo); 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(\)){

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

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

catch(NumberFormatException ex){

message.setText(\请输入数字字符\); } } }

public void setJTextField(JTextField... t){ textOne=t[0]; textTwo=t[1]; textResult=t[2]; }

public void setJLabel(JLabel...label){ operatorLabel=label[0]; message=label[1]; } }

4

3.实验结果:

4.实验后练习:

(1)模仿本实验的代码,再增加小学生级别。 (2)给上述程序增加测试乘法的功能。 (二)实验题目二: 布局与日历。

1.要点分析: 设置一个窗口,该窗口的布局为BorderLayout布局。窗口的中心添加一个JPanel容器pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter中放置49个标签,用来显示日历。窗口的北面添加一个JPanel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月日历;单击previousMonth按钮,可以显示当前月的上一月的日历。 2.程序源代码:

package 布局与日历;

public class CalendarMainClass {

public static void main(String args[]){

CalendarFrame frame=new CalendarFrame(); frame.setBounds(100,100,360,300); frame.setVisible(true);

frame.setYearAndMonth(2015,5); } }

package 布局与日历; import java.util.*; import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

5

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java实验 JAVA Swing 图形用户界面和对话框在线全文阅读。

java实验 JAVA Swing 图形用户界面和对话框.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/525240.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: