好文档 - 专业文书写作范文服务资料分享网站

《Java语言程序设计》(第3版)第6章

天下 分享 时间: 加入收藏 我要投稿 点赞

第六章 Java图形与图像处理

【1】用绘制线段的方法输出一个红色的“王”字。 [解答]:代码如下: import javax.swing.*; import java.awt.*;

public class DrawWang extends JFrame { public DrawWang(){

super(\在窗体上绘制一个王字\ }

public void paint(Graphics g){ g.setColor(Color.red); g.drawLine(10,50,100,50); g.drawLine(10,100,100,100); g.drawLine(10,150,100,150); g.drawLine(60,50,60,150); }

public static void main(String[] args) { DrawWang dw = new DrawWang(); dw.setSize(150,200); dw.setVisible(true); } }

运行效果如下:

【2】编写一个程序绘制8个同心圆,各园相差20个像素点。 [解答]:代码如下: import javax.swing.*; import java.awt.*;

public class EightCircle extends JFrame { public EightCircle(){

super(\在窗体上绘制八个同心圆\

1

}

public void paint(Graphics g){ g.setColor(Color.red);

g.drawOval(200,200,10,10); g.drawOval(180,180,50,50); g.drawOval(160,160,90,90); g.drawOval(140,140,130,130); g.drawOval(120,120,170,170); g.drawOval(100,100,210,210); g.drawOval(80,80,250,250); g.drawOval(60,60,290,290); }

public static void main(String[] args) { EightCircle ec = new EightCircle(); ec.setSize(500,400); ec.setVisible(true); } }

运行效果如下:

【3】编写一个程序绘制一把打开的折扇。 [解答]:代码如下: import javax.swing.*; import java.awt.*;

public class T5 extends JFrame { public T5(){

super(\打开的折扇\

2

}

public void paint(Graphics g){ g.setColor(Color.red);

g.fillArc(50,50,300,300,15,150); g.setColor(Color.BLUE);

g.fillArc(140,140,120,120,15,150); g.setColor(Color.BLACK);

g.fillArc(180,180,40,40,15,150); }

public static void main(String[] args) { T5 ec = new T5(); ec.setSize(500,400); ec.setVisible(true); } }

运行效果如下:

【4】简述Java的事件处理机制。什么是事件源?什么是监听者?在Java的图形用户界面中,谁可以充当事件源?谁可以充当监听者?

[解答]:java的事件处理机制就是,事件源允许监听器注册的事件对象,在事件发生的时候想相关的注册对象发送一个,事件对象,监听器便根据相关的信息来选择运行相关的代码。 事件源:英文名为event source,是指事件发生的地方,也就是引起事件的组件,按钮Button,文本组件等都可以当做事件源。比如说,你点击一个button,那么button就是事件源,要想使button对某些事件进行响应,你就需要注册特定的监听者。(具体请看第5章的事件处理)

监听者:英文名为event handler事件处理者,又叫监听器。具体的对监听的事件类,当它监听到event object产生的时候,它就调用相应的方法,进行处理。

在java中,AWT组件和swing组件都可以当做事件源;java.awt.event.*,里面各种类都可以为监听者。

3

【5】动作事件的事件源可以有哪些?如何响应动作事件?

[解答]:动作事件的事件源可以有:Button,JButton,MenuItem,等。 响应动作事件的过程一般为:

声明和实例化事件源,如:Button btn=new Button(“确定”);

注册监听:btn.addActionListener(this); //this指明是在当前类实现处理 实现接口:public void actionPerformed(ActionEvent e){//具体代码};

【6】应用键盘事件编写一个推箱子的游戏程序。 [解答]: import javax.swing.*; import java.awt.*;

import java.awt.event.*;

public class Test6 extends JFrame implements KeyListener {

key_move_Canvas drawing =new key_move_Canvas();

public Test6() //初始化方法,生成按钮,并设置监听器 {

super(\

setSize(500, 500); setVisible(true);

setLayout(new FlowLayout()); add(drawing);

drawing.addKeyListener(this);//监听画布

drawing.requestFocus();//设置焦点(画布对象) validate();

setDefaultCloseOperation(EXIT_ON_CLOSE); }

public void keyPressed(KeyEvent e) //设置键盘事件 {

if(e.getKeyCode()==KeyEvent.VK_UP)//向上的方向键 {

drawing.moveUp(); }

if(e.getKeyCode()==KeyEvent.VK_DOWN) {

drawing.moveDown(); }

if(e.getKeyCode()==KeyEvent.VK_LEFT) {

drawing.moveLeft(); }

if(e.getKeyCode()==KeyEvent.VK_RIGHT)

4

{

drawing.moveRight(); } }

public void keyTyped(KeyEvent e) {} public void keyReleased(KeyEvent e) {}

public static void main(String args[]) {

new Test6(); } }

class key_move_Canvas extends Canvas {

(红色图形块推着蓝色图形块一起移动) int x=360,y=180;

int m=200,n=200; int step=10;

key_move_Canvas() {

setSize(500,500);//未设置的画布大小为一个像素,因此需要设置大小 }

public void paint(Graphics g) {

g.setColor(Color.black); g.fillRect(x+2,y+2,32,32); g.setColor(Color.red); g.fillRect(x, y, 30, 30);

g.setColor(Color.black);

g.fillRect(m + 2, n + 2, 32, 32); g.setColor(Color.blue); g.fillRect(m, n, 30, 30); }

public void moveUp()//方块向上移动 {

if(xm-30&&y==n+30) {

if(n>-30) {

n-=step; y-=step; }

5

《Java语言程序设计》(第3版)第6章

第六章Java图形与图像处理【1】用绘制线段的方法输出一个红色的“王”字。[解答]:代码如下:importjavax.swing.*;importjava.awt.*;publicclassDrawWangextendsJFrame{publicDrawWang(){super(\在窗体上绘制
推荐度:
点击下载文档文档为doc格式
8y9bl0vdif6h1tx45d7638ccg96mxg006ww
领取福利

微信扫码领取福利

微信扫码分享