想请教大家“五个棋子在一条线上获胜”这个功能如何实现?请用代码说明。谢谢!!
解决方案 »
- 关于clone()的问题
- 请问各位大虾java编程小问题
- java.sql.ResultSetMetaData.isAutoIncrement(i) 无法获取表中列的真实状态?
- java控制Excel问题,请高手指教
- 各位XDJM们给推荐两本关于软件工程和算法的好书啊
- 多线程用HttpURLConnection下载图片问题,请教大家
- 请问哪位朋友有together的中文使用文档???
- 调查!!!在公司里JAVA到底用来做什么项目???薪水何?
- ftpclient.put()方法谁用过?
- Java初级的一个题目,求1-2+3-4+5-6…,+99的和
- 跪求呀,Swing中的JList控件的使用方法呀.!!
- 它在哪里查找数据库?
* filename: Game.java
*
* author: jellen
*
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.*;
import java.util.*;class PaintPanel extends JPanel {
ArrayList Items = new ArrayList(); public PaintPanel() {
setLayout(new BorderLayout());
ButtonPanel buttonPanel = new ButtonPanel();
add(buttonPanel, BorderLayout.SOUTH);
addMouseListener(new MouseHandler());
} public void paintComponent(Graphics g) {
int startX = 50;
int startY = 50;
boolean isMy = false;
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g; for(int i=0; i<16; i++) {
g2.draw(new Line2D.Double(startX, startY+20*i, startX+300, startY+20*i));
g2.draw(new Line2D.Double(startX+20*i, startY, startX+20*i, startY+300));
}
for(int i=0; i<Items.size(); i++) {
isMy = !isMy;
if(isMy)
g2.setColor(Color.BLACK);
else
g2.setColor(Color.WHITE);
g2.fill((Ellipse2D)Items.get(i));
}
}
void myRepaint() {
repaint();
}
private class MouseHandler extends MouseAdapter {
public void mousePressed(MouseEvent event) {
int x = event.getX();
int y = event.getY();
paintItem(x, y);
repaint();
}
void paintItem(int x, int y) {
if(x > 50 && x < 350 && y >50 && y < 350) {
int X = x / 20;
int Y = y / 20;
int centerX = X*20 + 10;
int centerY = Y*20 + 10;
Ellipse2D ellipse = new Ellipse2D.Double();
ellipse.setFrameFromCenter(centerX, centerY, centerX+8, centerY+8);
Items.add(ellipse);
}
}
}
private class ButtonPanel extends JPanel {
public ButtonPanel() {
JButton reset = new JButton("Reset");
add(reset);
JButton quit = new JButton("Quit");
add(quit); ResetEvent listenerR = new ResetEvent();
reset.addMouseListener(listenerR);
QuitEvent listenerQ = new QuitEvent();
quit.addMouseListener(listenerQ);
} private class QuitEvent
extends MouseAdapter {
public void mouseClicked(MouseEvent event) {
System.exit(1);
}
} private class ResetEvent
extends MouseAdapter {
public void mouseClicked(MouseEvent event) {
Items.clear();
myRepaint();
}
}
}
}class GameFrame extends JFrame {
public GameFrame() {
setTitle("A Little Game");
setSize(400, 500);
setResizable(false); PaintPanel panel = new PaintPanel();
getContentPane().add(panel);
}
} public class Game {
public static void main(String[] args) {
GameFrame frame = new GameFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}