Java第八次实验要求

实验八 GUI

 

一、 实验目的

1、 掌握Java语言中窗体的基本用法;

2、 掌握Java语言中窗体控件的基本用法;

3、 掌握Java语言中窗体事件、监听器的基本概念,及其使用方法;

4、 掌握线程在窗体程序中的应用;

5、 掌握基本的绘图技术;

 

二、 实验要求

1、 根据实验步骤中提出的要求,使用记事本编写相应的Java程序;

2、 使用JDK中提供的javac以及java命令编译、运行自己所编写的Java程序;

3、 根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果;

4、 记录实验中遇到的各类问题并以及解决办法。

 

三、 实验步骤

1、 窗体、基本控件、事件

(1) 下面的程序将完成两个数的相加,请将其代码补充完整:

public class EventFrame extends        {

                ;

JTextField txtA,txtB;

public EventFrame(){

lblDisplay=new JLabel();

lblDisplay.setText(" 0 + 0 = 0 ");

lblDisplay.                (SwingConstants.CENTER);

lblDisplay.                (new Font("Times New Rome",Font.BOLD, 30));

【补充】

JPanel pnl=new JPanel();

add(lblDisplay);

pnl.add(txtA);

pnl.add(txtB);

pnl.add(btnAdd);

btnAdd.addActionListener(new (){

public void actionPerformed(   event) {

【补充】

}

});

【补充】

}

}

 

(2) 你完成的程序,窗体关闭后能否自动结束?其关键性的语句是什么?

 

 

2、 窗体与线程

(1) 已知有如下代码:

public class ThreadFrame extends JFrame {

int n=100000000;

JLabel lblDisplay;

JButton btnCalculate;

ThreadFrame(){

lblDisplay=new JLabel();

lblDisplay.setText("f(n) = "+result);

lblDisplay.setHorizontalAlignment(SwingConstants.CENTER);

lblDisplay.setFont(new Font("Times New Rome",Font.BOLD, 30));

btnCalculate=new JButton("Calculate");

btnCalculate.setFont(new Font("Times New Rome",Font.BOLD, 20));

btnCalculate.setHorizontalAlignment(SwingConstants.CENTER);

btnCalculate.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event) {

btnCalculate.setEnabled(false);

btnCalculate.setText("Calculating, please wait ...");

long result=f(n,0,10);

lblDisplay.setText("f(n) = "+result);

btnCalculate.setEnabled(true);

btnCalculate.setText("Calculate again");

}

});

add(lblDisplay);

add(btnCalculate,BorderLayout.SOUTH);

setSize(600, 400);

setLocation(200, 200);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

long f(int n,long start,long end){

long result=0;

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

result+=(long)(Math.random()*(end-start)+start);

}

return result;

}

public static void main(String[] args) {

new ThreadFrame();

}

}

 

(2) 运行该程序,观察该程序的功能。

(3) 添加属性:ThreadFrame frame=this;

(4) 修改事件响应处理代码:

public void actionPerformed(ActionEvent event) {

btnCalculate.setEnabled(false);

btnCalculate.setText("Calculating, please wait ...");

frame.setCursor(Cursor.WAIT_CURSOR);

new Thread(frame).start();

}

(5) 实现Runnable接口

public class ThreadFrame extends JFrame implements Runnable{

……

public void run() {

long result=f(n,0,10);

lblDisplay.setText("f(n) = "+result);

btnCalculate.setEnabled(true);

btnCalculate.setText("Calculate again");

frame.setCursor(Cursor.DEFAULT_CURSOR);

}

(6) 该程序经过修改后运行的效果与原来的程序有什么不同,请简述其原因。

 

3、 绘图

(1) 按要求补充下面的代码

public class GraphicsFrame extends JFrame{

public GraphicsFrame(){

this.addMouseListener(

new (){

public void mouseClicked(  e) {

【单击左键画圆,单击右键画矩形】

}

}

);

setBounds(100,100,600,400);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

setVisible(true);

}

public void paint( ){

【窗口重绘时,显示红色、字体大小为30的文字“Java绘图程序”】

}

【程序入口】

 

}

(2) 如果将第二空处修改为MouseListener,程序应当如何修改?简述AdapterListener之间的关系。

 

四、 实验结果

五、 实验小结

实验1 Java语言基础 4 一、实验目的 4 二、实验要求 4 三、实验内容 4 (一) 声明不同数据类型的变量 4 (二) 了解变量的使用范围 5 (三) 使用关系运算符和逻辑运算符 5 (四) 使用表达式语句与复合语句 6 (五) 使用选择语句 6 (六) 使用循环语句 8 实验2 面向对象编程 11 一、实验目的 11 二、实验要求 11 三、实验内容 11 (一)创建 Applet 应用小程序 11 (二)创建对象并使用对象 12 (三)编写显示当前日期和时间的程序 13 (四)使用修饰符 14 (五)方法中参数传递 15 (六)类的继承性 16 (七)类的多态性 18 实验3 包、接口与异常处理 22 一、实验目的 22 二、实验要求 22 三、实验内容 22 (一)了解并使用 Java 的系统包 22 (二)创建并使用自定义包 22 (三)使用接口技术 24 (四)了解异常处理机制 25 实验4 常用系统类的使用 27 一、实验目的 27 二、实验要求 27 三、实验内容 27 (一)了解 Applet 的生命周期 27 (二)使用数学函数类 28 (三)使用日期类 29 实验5 建立图形用户界面 32 一、实验目的 32 二、实验要求 32 三、实验内容 32 (一)创建图形用户界面 32 (二)了解事件处理机制 34 (三)建立独立运行的窗口界面并使用匿名类 36 (四)使用 Swing 组件 39 (五)使用自定义对话框与内部类 41 实验6 图形处理 44 一、实验目的 44 二、实验要求 44 三、实验内容 44 (一)使用图形类 Graphics 44 实验7图形处理(二) 47 一、实验目的 47 二、实验要求 47 三、实验内容 47 (一)幻灯机效果——连续显示多幅图像 47 (二)使用滚动条改变背景颜色 48 (三)Applet 与 Application 合并运行 49 (四)创建电闪雷鸣的动画 50 实验8 流与文件 53 一、实验目的 53 二、实验要求 53 三、实验内容 53 (一)使用标准数据流的应用程序 53 (二)使用文件输入输出流的应用程序 54 (三)使用随机文件类的应用程序 54 (四)使用数据输入输出流与文件输入输出流类的应用程序 55 (五)使用对象输入输出流的应用程序 56 实验9 线程 58 一、实验目的 58 二、实验要求 58 三、实验内容 58 (一)Thread子类的方法现多线程 58 (二)现Runnable接口的方法现多线程 59 实验10 数据库的连接:JDBC 61 一、实验目的 61 二、实验要求 61 三、实验内容 61 (一)配置ODBC数据源 61 (二)编写程序,按照下表的构建立"student"表 61 (三)编写程序,完成填写功能 62 (四)编写程序,完成查询功能 62
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值