日期:2014-05-20 浏览次数:20731 次
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class Qipan extends JFrame {
private int X, Y; // x,y坐标
final int WIDTH = 900, HEIGHT = 800; //定义全局变量
int x=50,y=50,L=40,N=15; //i和j表示坐标,L表示长度,N表示规格
boolean isVisible = false; //控制显示
public Qipan() {
super("超神锐"); //请叫我超神锐
addHandler();
setSize(WIDTH, HEIGHT); //设置大小
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void addHandler() {
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
// 左键
if (e.getButton() == MouseEvent.BUTTON1) {
X = e.getX(); //取得鼠标的位置坐标
Y = e.getY();
isVisible = true;
repaint();
}
else if (e.getButton() == MouseEvent.BUTTON3) { // 右键取消圆圈
isVisible = false;
repaint();
}
}
}); //内部类。
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.BLUE);
for(int j=50;j<=y+L*(N-1);j=j+L)
g.drawLine(x, j, x+L*(N-1), j); //画横线
for(int i=50;i<=x+L*(N-1);i=i+L)
g.drawLine(i, y, i, y+L*(N-1)); //画竖线
for(int i=x,k=1;i<=x+L*(N-1);i=i+L,k++) {
String k2=k+ " 囧"; //数字转化为字符串以便显示在棋盘正下方
g.drawString(k2, i-5,y+L*N+5 ); //调整好位置。
}
for(int j=y,k=1;j<=y+L*(N-1);j=j+L,k++) {
String k2=k+" 杀"; //棋盘右方的数字
g.drawString(k2, x+L*N-5, j);
}
if(isVisible){ //检验鼠标是否点击!
g.setColor(Color.BLACK);
g.drawOval(X-15, Y-15, 30, 30); //画圆。为什么鼠标的坐标和圆心坐标不一致呢??坐标原点不同?
g.fillOval(X-15,Y-15,30,30); //填充颜色
}
}
public static void main(String[] args) {
new Qipan(); //主程序。
}
}