JAVA如何在画板加分数_自学了java一段时间,做了个最低配的画板

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

源码:

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;import javax.swing.*;public class MyClass2 extends JFrame implements KeyListener{

private MyPanel pan;

int f = 0;

int[] [] location_array = new int[2] [736];

private boolean b = false;

private final int x_min = 0;

private final int y_min = 0;

private final int x_max = 620;

private final int y_max = 440;

private int x = 0;

private int y = 0;

public static void main(String[] args) {

// TODO Auto-generated method stub 24,32

MyClass2 mc = new MyClass2();

}

public MyClass2() {

pan = new MyPanel();

this.addKeyListener(this);

this.add(pan,BorderLayout.CENTER);

this.setVisible(true);

this.setTitle("低配画板");

this.setBounds(400,200,646,490);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setResizable(false);

}

public void add (int x,int y) {

this.location_array[0] [f] = x;

this.location_array[1] [f] = y;

f++;

}

class MyPanel extends JPanel{

public void paint (Graphics g) {

super.paint(g);

System.out.println("paint被调用");

for (int i = 20;i < 640;i += 20) {

g.drawLine(i,0,i,480);

}

for (int i = 20;i < 480;i += 20) {

g.drawLine(0,i,640,i);

}

g.setColor(Color.red);

for (int i = 1;i < 736;i++) {

g.fillRect(location_array[0] [i],location_array[1] [i],20,20);

}

g.setColor(Color.black);

g.fillRect(x,y,20,20);

}

}

@Override

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

if ((e.getKeyChar() == 'w') && (y > y_min)) {

y -= 20;

System.out.println("按钮'up'被按下");

repaint();

}else {

if ((e.getKeyChar() == 's') && (y < y_max)) {

y += 20;

System.out.println("按钮'down'被按下");

repaint();

}

else {

if ((e.getKeyChar() == 'a') && (x > x_min)) {

x -= 20;

System.out.println("按钮'left'被按下");

repaint();

}

else {

if ((e.getKeyChar() == 'd') && (x < x_max)) {

x += 20;

System.out.println("按钮'right'被按下");

repaint();

}

}

}

}

if ((e.getKeyChar() == 'W') && (y > y_min)) {

this.add(x,y);

y -= 20;

System.out.println("按钮'up'被按下");

repaint();

}else {

if ((e.getKeyChar() == 'S') && (y < y_max)) {

this.add(x,y);

y += 20;

System.out.println("按钮'down'被按下");

repaint();

}

else {

if ((e.getKeyChar() == 'A') && (x > x_min)) {

this.add(x,y);

x -= 20;

System.out.println("按钮'left'被按下");

repaint();

}

else {

if ((e.getKeyChar() == 'D') && (x < x_max)) {

this.add(x,y);

x += 20;

System.out.println("按钮'right'被按下");

repaint();

}

}

}

}

}

@Override

public void keyReleased(KeyEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void keyTyped(KeyEvent arg0) {

// TODO Auto-generated method stub

}}

操作方法:w,a,s,d移动,摁住Shift画。

这个画板低配到没有橡皮也不能改颜色

23e2aeb0dce11d1f628c94cadca68aab.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值