想请教大家“五个棋子在一条线上获胜”这个功能如何实现?请用代码说明。谢谢!!
解决方案 »
- 关于第一个小程序 wordcount的问题。。
- PLSQL登录ORACLE问题,操作超时
- 如何将java 桌面程序打包部署成安装文件?
- 精通JAVA都需要些什么素质?
- 书中的代码 。关于javabean的,这个错误提示该怎么做??还有个疑问是 怎么根据错误提示知道什么地方错了。这个我怎么就看不出来呢
- JBUILDER中使用SWING时自定义异常问题
- 请问正则表达式中*?或*有什么区别???
- 为什么从RESULTSET记录集中读数据时,老是少读一行?
- 各位老大:使用JTextField组件添加DocumentListener监听内容改变时,如何动态的获得它当前的录入值?
- PreparedStatement怎么获取sql语句
- 跪求呀,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();
}
}