中国石油大学北京 石油工程学院 黄开浪
实验6 图形用户界面和Applet编程实验
一、实验目的:
1. 掌握Java中图形用户界面的编程 2. 掌握布局管理器和事件的响应方法。 3. 掌握Applet多媒体开发方法
二、实验环境(硬/软件要求):
通过局域网互联,安装Windows 2000/XP操作系统环境的JDK 1.5.0(或以上版本), Jcreater Pro或JBuilder 9、eclipse。
三、实验内容:
编写简单的图形用户界面并进行事件处理;编写程序熟悉常见组件的使用;编写程序进行图形化显示;编写程序进行Applet多媒体开发。
四、实验主要步骤:
1 编写一个算数测试小软件。点击获取题目进行随机出题,点击确认答案判断答题正确与否。 一次可出多题,可以判断答案对错。
2 编写一个班级推选优秀生的软件,可列出参与推优的学生名单,能够显示当前投票人数以及每名候选者得票数,如果同时能够图形化显示得票数更佳。
3编写一个程序,画出一辆小车图案。思考是否能让小车平行移动?如何移动? 4编写一个Applet程序,在网页中同时显示自己的生活照和播放一段音乐。
五、实验报告形式(纸质/电子):
1. 纸质(实验报告),可打印。试验结果截图打印出来,附在试验报告后
2.
电子 (程序源代码、运行结果)
3. 回答下述问题
有几种窗体布局管理器,各有何不同?
六、评分标准:
1. 能否自如地设计完成要求验证的内容。异常的处理是否恰当。 2. 程序设计的风格,是否规范。
3. 各个程序的源代码,要求对代码行进行适当地注释说明;
石油工程学院 黄开浪
中国石油大学北京 石油工程学院 黄开浪
4. 上机实验的态度是否认真,实验报告书写是否规范完整。 1、
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Font;
import java.awt.GridLayout; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random;
import javax.swing.*;
import javax.swing.GroupLayout.Alignment;
class randomtimu {
double x1; double x2; char yunsuan;
final char[] Yun=new char[]{'+','-','*','/'}; double result;
String errorString=\; public randomtimu() {
x1=Math.random()*100; x2=Math.random()*100;
yunsuan=Yun[(int)(Math.random()*4)]; switch (yunsuan) {
case '+':
result=x1+x2; break;
case '-':
result=x1-x2;
石油工程学院 黄开浪
中国石油大学北京 石油工程学院 黄开浪
break;
case '*':
result=x1*x2; break; case '/': if(x2==0) {
errorString=\; }
else {
result=x1/x2; }
break; default: break; } } }
public class test6 extends JFrame {
private JPanel contentPane;
JTextField jTextField=new JTextField(10); JTextField jTextField3=new JTextField(10); JTextField jTextField4=new JTextField(10); JLabel jLabel=new JLabel(\,JLabel.CENTER); JLabel jLabel2=new JLabel(\,JLabel.CENTER); JLabel jLabel3=new JLabel(\); double result=0;
public static void main(String[] args) {
new test6().setVisible(true); } /**
* Create the Frame. */
public test6() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container=getContentPane(); setBounds(500,100,600,150); setLayout(new BorderLayout()); JPanel jPanel=new JPanel();
jPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
石油工程学院 黄开浪
中国石油大学北京 石油工程学院 黄开浪
JPanel jPanel2=new JPanel();
JButton jButton2=new JButton(\确认答案\); jPanel2.add(jButton2);
JButton jButton=new JButton(\获取题目\); jPanel.add(jButton);
jPanel.add(jTextField3); jTextField3.setSize(20,10); jPanel.add(jLabel);
jLabel2.setFont(new Font(\黑体\, Font.BOLD, 18)); jPanel.add(jTextField); jPanel.add(jLabel2);
jLabel.setFont(new Font(\黑体\, Font.BOLD, 18)); jPanel.add(jTextField4);
container.add(jPanel,BorderLayout.NORTH); container.add(jPanel2); jPanel2.add(jLabel3);
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
randomtimu randomtimu1=new randomtimu(); jTextField4.setText(\); jLabel3.setText(\);
jTextField3.setText(String.format(\,randomtimu1.x1));
jTextField.setText(String.format(\,randomtimu1.x2)); jLabel.setText(randomtimu1.yunsuan+\);
if(randomtimu1.errorString.equals(\)) {
JOptionPane.showMessageDialog(null, \除数不能为零\); }
else {
result=randomtimu1.result; } } });
jButton2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
石油工程学院 黄开浪
中国石油大学北京 石油工程学院 黄开浪
{
if(jTextField4.getText().equals(\)||jTextField4.getText()==null) {
JOptionPane.showMessageDialog(null, \答案不能为空\); }
else {
double
string=Double.parseDouble(jTextField4.getText()); String answer=\正确结果是\+String.format(\,result);
if(Math.abs(string-result)<0.01) {
answer=\答案正确\+answer; } else {
answer=\答案错误\+answer; }
jLabel3.setText(answer); } } }); } }
2、运动的迷你小车外加图像放大功能 import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Graphics2D;
石油工程学院 黄开浪