Java图形用户界面编程练习

更新时间:2023-10-14 00:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验八 Java图形用户界面编程练习

实验目的

1、 掌握 Java 的 GUI 设计技术 2、 掌握 AWT 和 Swing 的应用技巧

实验要求

1、 编写一个程序学习使用处理ActiongEvent事件 2、 编写一个程序学习使用布局类

实验内容

1. 猜数字游戏

实验目的:练习图形用户界面编程,学习处理ActionEvent事件。

实用要求:

要求程序中要有2个按钮buttonGetNumber和buttonNumber,用户单击buttonGetNumber

按钮可以得到一个随机数,然后在文本框中输入猜测数字,再单击buttonNumber按钮,程序根据用户的猜测给出提示信息。

运行效果示例:

程序模板:按模板要求,将【代码】替换为Java程序代码。 GuessExample.java

import java.awt.*;

import java.awt.event.*; import java.applet.*; public class GuessExample extends Applet implements ActionListener {

int number;

TextField inputNumber; Label feedBack;

Button buttonGetNumber,buttonEnter; public void init() {

buttonGetNumber=new Button(\得到一个随机数\ feedBack=new Label (\无反馈信息\ feedBack.setBackground(Color.green); inputNumber=new TextField(\

buttonEnter=new Button(\确定\

【代码1】 //按钮buttonEnter增加ActionEvent事件监视器,监视器为当前Java Applet。

【代码2】 //按钮buttonGetNumber增加ActionEvent事件监视器,监视器为当前Java Applet。

add(new Label(\获取1-100之间的随机数:\ add(buttonGetNumber);

add(new Label(\输入您的猜测:\ add(inputNumber);

add(new Label(\单击确定按钮:\ add(buttonEnter);

add(new Label(\反馈信息:\ add(feedBack); }

public void actionPerformed(ActionEvent e) {

if(【代码3】) //判断事件源是否是buttonGetNumber。 {

number=(int)(Math.random()*100)+1; }

else if(【代码4】) //判断事件源是否是buttonEnter。 {

int guess=0; try {

guess=Integer.parseInt(【代码5】); //返回inputNumber中的文本。

if(guess==number) {

【代码6】 //feedBack设置提示文本:\猜对了!\。 }

else if(guess>number) {

【代码7】 //feedBack设置提示文本:\猜大了!。 inputNumber.setText(null); }

else if(guess

【代码8】 //feedBack设置提示文本:\猜小了!。 inputNumber.setText(null); } }

catch(NumberFormatException event) {

【代码9】 //feedBack设置提示文本:\请输入数字字符\。

} } } }

实验后的练习:

1、 将给上述程序增加记录猜测次数的功能,每次反馈这是第几次猜测,当猜测成功时

反馈一共猜测了几次。

2. 布局和日历

实验目的:学习使用布局类 实用要求:

利用Swing编写一个GUI程序,JFrame使用BorderLayout布局。在JFrame的中心添加一个Panel容器pCenter, pCenter的布局是7行7列的GridLayout布局,pCenter中放置49个标签,用来显示日历。JFrame的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月的日历;单击previousMonth按钮,可以显示当前月的上一月的日历。JFrame的南面添加一个Panel容器pSouth,其布局也是FlowLayout,pSouth中放置一个标签来显示一些日历信息。

运行效果示例:

程序模板:按模板要求,将【代码】替换为Java程序代码。 CalendarExample.java

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

public class CalendarExample extends JFrame implements ActionListener {

JLabel a[]=new JLabel[42];

JButton titleName[]=new JButton[7];

String name[]={\星期日\,\星期一\,\星期二\,\星期三

\, \星期四\,\星期五\,\星期六\};

JButton nextMonth,previousMonth; int year=2008,month=1; CalendarBean calendar; JLabel showMessage=new JLabel(\,JLabel.CENTER); public CalendarExample() {

【代码1】 //将Java Applet的布局设置为BorderLayout布局。

JPanel pCenter=new JPanel(); 【代码2】 //将pCenter的布局设置为7行7列的GridLayout 布局。

for(int i=0;i<7;i++) {

titleName[i]=new JButton(name[i]); 【代码3】 //向pCenter添加组件titleName[i]。 }

for(int i=0;i<42;i++) {

a[i]=new JLabel(\,JLabel.CENTER); 【代码4】 //向pCenter添加组件a[i]。

本文来源:https://www.bwwdw.com/article/tt1f.html

Top