北京信息科技大学Java语言程序设计-GUI

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【实验名称】实验 5 Java GUI

【实验目的】

1、学习和掌握 Java常用的 GUI组件。

2、学习和掌握 Java常用的布局管理器。

3、实习和掌握 Java的事件驱动程序设计方法。

4、能够实现简单的 Java GUI 。

【实验步骤(解题过程)】

1、第一步, Java GUI 静态界面的设计和实现,包括:组件和组件的摆放(布

局管理器)。

2、第二步, Java GUI 动态事件处理的设计与实现,需要Java事件驱动模型。

3、第三步,如果需要实体类支持,则按实验2的步骤实现实体类并使用。

【实验内容】

1、(移动小球)编写一个程序,在面板上移动小球。定义一个面板类来显示小球,并提供想做、向右、向上和向下移动小球的方法。

说明:⑴程序来源编程练习 16.3 (P456)。⑵可以不考虑小

球移动到边界外的情况。

【实验预习】

1.问题描述:创建一个界面,通过鼠标点击按钮实现小球的上下左右移动。

2.输入;鼠标点击按钮;处理:通过事件监听,实现圆的重画;输出;显示出

移动效果。

3.技术支持;需要用到事件监听,及圆的绘制即图形知识,布局管理器等。

【附编程代码】

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.*; import

java.awt.*;

import java.awt.event.*;

public class MovingBall extends JFrame {

private static JButton bleft=new JButton("向左");

private static JButton bright=new JButton("向右");

private static JButton bup=new JButton("向上");

private static JButton bdown=new JButton("向下");

private CirclePanel canvas = new CirclePanel();

public MovingBall() {

JPanel panel = new JPanel(); //将按钮放入面板中

panel.add(bleft);

panel.add(bright);

panel.add(bup);

panel.add(bdown);

this.add(canvas, BorderLayout.CENTER); //将含有圆的面板放在中央this.add(panel, BorderLayout.SOUTH); //将含有按钮的面板放在右边

//创建按钮的监听器并注册到按钮

bleft.addActionListener(new Listener());

bright.addActionListener(new Listener());

bup.addActionListener(new Listener());

bdown.addActionListener(new Listener());

}

//主方法

public static void main(String[] args) {

JFrame frame = new MovingBall();

frame.setTitle(" 移动的小球 ");

frame.setLocationRelativeTo(null); // Center the frame

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(480, 300);

frame.setVisible(true);

}

//监听类

class Listener implements ActionListener {

public void actionPerformed(ActionEvent e) {

System.out.println(new java.util.Date(e.getWhen()));

if (e.getSource() == bleft)

canvas.left();

else if (e.getSource() == bright)

canvas.right();

else if (e.getSource() ==bup)

canvas.up();

else if (e.getSource() == bdown)

canvas.down();

}

}

//含有一个圆的面板的类

class CirclePanel extends JPanel {

private int x =0;

private int y = 0;

//左移这个圆

public void left() {

x--;

repaint();

}

//右移这个圆

public void right()

{ x++; repaint();

}

// 上移这个圆

public void up() {

相关文档
最新文档