/**
* @author-程前
* @version-star1.3.0
* @note-画一百个*,然后可以拖动任意一颗星星,可以按上下左右控制字或者月亮的移动,shift控制移动字还是月亮
* */
public class Star4 {
static final boolean YUELIANG=true;
static final boolean WENZI=false;
static boolean type=WENZI;
static int[] list_x=new int[200];
static int[] list_y=new int[200];
static int x=500;
static int x_1=1000;
static int y=400;
static int y_1=100;
static int[] a=new int[]{3000};
public static void main(String[] s) {
for (int i = 0; i < 100; i++) {
list_x[i]=(int)(Math.random()*1400);
list_y[i]=(int)(Math.random()*900);
}
JFrame f=new JFrame();
f.setSize(1400,900);
f.getContentPane().setBackground(Color.BLACK);
f.getContentPane().setVisible(true);
Mypanl m=new Mypanl();
m.addMouseListener(m);
m.addMouseMotionListener(m);
m.addKeyListener(m);
f.add(m);
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setVisible(true);
}
static class Mypanl extends Panel implements MouseListener,MouseMotionListener,KeyListener{
@Override
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillOval(x_1, y_1,60,60);
g.setColor(Color.BLACK);
g.fillOval(x_1-20,y_1-10,70,70);
g.setColor(Color.WHITE);
g.setFont(new Font(null, 0,20));
for (int i = 0; i < list_x.length; i++) {
g.drawString("*",list_x[i],list_y[i]);
}
g.setColor(Color.YELLOW);
g.setFont(new Font(null, 0,50));
g.drawString("快夸我,快夸我",x,y);
}
/**
* MouseListener*/
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("1");
int mouseX=e.getX();
System.out.println("x:"+mouseX);
int mouseY=e.getY();
System.out.println("y:"+mouseY);
System.out.println(a[0]);
if (a[0]>=0) {
list_x[a[0]]=mouseX-5;
list_y[a[0]]=mouseY+10;
repaint();
}
a[0]=-1;
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("2");
int mouseX=e.getX();
System.out.println("x:"+mouseX);
int mouseY=e.getY();
System.out.println("y:"+mouseY);
for (int i = 0; i < list_x.length; i++) {
if ((list_x[i]<=mouseX+2&&mouseX<=list_x[i]+9)&&(mouseY>=list_y[i]-14&&mouseY<=list_y[i]-8)) {
System.out.println("x_"+list_x[i]);
System.out.println("y_"+list_y[i]);
a[0]=i;
System.out.println("i:"+i);
}
}
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
/**
* MouseMotionListener*/
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
}
/**
* KeyListener*/
@Override
public void keyTyped(KeyEvent e) {
System.out.println(e.getKeyCode()+"_1");
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyCode()+"_2");
if(e.getKeyCode()==38){
if (type==WENZI) y-=10;
else y_1-=10;
repaint();
repaint();
}else if (e.getKeyCode()==40) {
if (type==WENZI) y+=10;
else y_1+=10;
repaint();
}else if (e.getKeyCode()==37) {
if (type==WENZI) x-=10;
else x_1-=10;
repaint();
}else if (e.getKeyCode()==39) {
if (type==WENZI) x+=10;
else x_1+=10;
repaint();
}else if (e.getKeyCode()==16) {
if(type==WENZI) type=YUELIANG;
else type=WENZI;
}
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println(e.getKeyCode()+"_3");
}
}
}
基础篇:
JAVA用画板JFrame画布Panel画笔Graphics画漫天不停的跑的星星-1