谁有岁月荒唐我不负百度云你小说百度云

(Gossip YUN?)
第三方登录:2159人阅读
java教程(295)
java学习(294)
java(287)
java编程(287)
Java开发桌面应用程序的优劣
即使在JavaFX出现之前Java已经在桌面领域做出了一些重大的提升,比如Swing中的提升;我们现在也有了很棒的OpenGL;DirectX也有了很大的提升;启动时间也显着提升了。 即使在JavaFX出现之前Java已经在桌面领域做出了一些重大的提升,比如Swing中的提升;我们现在也有了很棒的OpenGL;DirectX也有了很大的提升;启动时间也显着提升了。没错,Java在去年做了很多显着而有效的工作。
然而不得不说的是,除此之外其他的仍是一塌糊涂。比如Java sound实际上并不好用,被遗弃的Java3D又如何呢?最近甚至JOGL也被Sun遗弃,包括很久之前的SwingLJAI(用作图片处理)多年未真正升级过,看起来也没有在什么地方得到利用,它迫切需要性能上的巨大提升以适应来临的多核GPU时代所有这些应用于桌面领域的Java产品不是被遗弃就是成为鸡肋。
而且很关键一点是,尽管我们可以用Java创建出桌面应用,但只要我们想开发真正的富桌面应用我们就无法真正使用Java而使用JNI、C/C++和平台依赖的libraries等。
使用Java构建桌面应用更多的是困难和麻烦,比如即便想要在Java应用内创建一个高效的优良的web浏览器都是一件难事。而且没有用Java编写的图片处理应用,没有一个纯粹的Java web浏览器,没有数字音频应用,没有3D建模器,没有矢量图形编辑器,没有先进的光栅编辑器。Java今日在桌面端所到达的高度只能满足那些服务器开发者,因为他们只需要在远程服务时使用电脑桌面上的简单界面。
过去我们一直说这是因为Java太慢,无法在一个慢的平台上开发出如此复杂的应用。但我们这样说是错的。原因有两点:一,Java从来就没有慢过,即便有些部分曾经慢过,但没有人怀疑当它需要被用到服务器端时它会迅速地得到提升,比如JITs,GCs等。这一点也正是Java语言卓越的地方。二,由于Java平台的天然特性,Java应用总是第一个利用市场上新硬件和新操作系统的应用。一旦JVM被配置到了一个新系统中,几乎不需要任何编辑和调试,Java应用就可以在上面全速运行。比如你在32位的操作系统上开发了一个应用,它就可以全速运行在Windows
7 或者Solaris的64位JVM上。所以所谓的Java太慢根本不能成为Java在桌面端碌碌无为的借口。
而且,如果你是一个终端用户,你甚至不需要从网站上重新下载应用,这意味着不仅终端用户和开发者得到了速度提升,甚至应用的执行性能的前边也得到了速度提升。今天,JIT在runtime为本地操作优化代码已经做得很棒了,这意味着你可以挖掘出你运行的硬件的全部的能力,这是一个静态编译语言永远也无法竞争过的性能,只是这个性能如果可以运用到桌面端和游戏领域就好了
我们总是说:由于Sun总是一个服务器端公司的原因,Java在桌面端一直没有真正的机会。而Oracle的收购让这种境况看起来不会有什么改变。希望这不要再继续下去,为了Sun、Oracle和Java自身的利益,Oracle内部的知名人士应该提醒公司来让他们知道:如果缺乏了在桌面端的能力和效率,必将影响Java的普及率甚至它在服务器端的占有率。
我们一直以来习惯着Sun主要提供服务器端服务,因而想象着未来更多的处理能力还
是出现在服务器端,而客户端不过是连接服务器的简单服务。这种情况已被证明是绝对错误的。因为未来的桌面应用将服务、应用与硬件所有的运算能力相结合,大量的数据和解码、声音、图像、视频被开发者处理,而且用并行编程的方式来实现,既保证了丰富的性能又保证了速度。对开发者来说,未来的服务既需要他们在客户端处理也需要在服务器端处理:执行复杂的搜索、图像、视频以及虚拟3D环境需要服务器端的技术,而远程服务如医学分析、远程教育和远程会议等则需要客户端能力。
只是令我们感到失望的是历史又一次地重复了,因为至今Java中还没有什么大的动作。
armin Ehrenreich 在回复中说道:说的好,我完全认同。
确实迫切需要跨平台的桌面应用技术,而且我不认为C++结合Qt是个好的选择。你说阐述的问题之所以没有引起很多的共鸣,我想是文化上的问题。许多Java社区的人们包括Sun内部的负责人无法理解你所说的,所以我断言Oracle也不会对Java做出什么大的改变。
客户端现在基本上被微软和Apple包揽。到Cocoa论坛中会发现他们谈论的是GUI的可用性、响应性、终端户如何处理桌面应用等而我们的论坛呢,大部分人认为应用的未来在服务器端。这就是文化上的差异。
但是桌面技术需要做很多工作,Swing很慢很慢地进化,连同Netbeans平台、Java3D, JOGL等应用勉强成为了桌面端的一个选择。但Sun置此境遇于不顾,只是模仿Flash发布了一款新的脚本语言,但是那些API只有使用JavaFX才可用
Jeff Martin回复道:正确的观点,但我有一点不同。Sun真正的问题是他应该吃自己的饭,用自己的力量来用Java写一些实在的桌面应用,这可以证明他们关于Java在桌面端的承诺,证明他们可以写出应用、提升框架和工具。我不认为另一个框架会帮助Java。
James Sugrue回复道:我同意作者观点,我也很支持桌面端开发。看看现在处于开发中的Eclipse. e4中的一些项目,它们为桌面和浏览器提供了一个解决方案,所以我想还是有一些希望的。但我认为我们不需要过分聚焦于桌面端,JavaFX是正确方向上的一个迈进,只是无法在Swing和Java3D/JOGL中看到应用提升。
Osvaldo Doederlein回复道:我认为JOGL的支持没有那么糟糕,毕竟它是JavaFX Desktop Runtime的一个依赖。实际上,我们可以写一个非JavaFX的小程序,而且不需要请求本地代码的许可性就可以配置。
学习有困难可以加扣:进行交流还可以关注微信公众号:javaniuniu获取免费得听课权限!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:117477次
积分:4088
积分:4088
排名:第6351名
原创:293篇
评论:33条
(17)(24)(23)(30)(25)(29)(30)(30)(31)(30)(29) 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Java桌面游戏开发毕业论文
下载积分:800
内容提示:Java桌面游戏开发毕业论文
文档格式:DOC|
浏览次数:56|
上传日期: 18:31:11|
文档星级:
该用户还上传了这些文档
Java桌面游戏开发毕业论文
官方公共微信我的简单五子棋 - Java游戏、桌面应用讨论版 -
疯狂Java联盟 企业应用开发与实践 CrazyIt做最受欢迎的Java论坛
帖子4&主题0&精华0&积分11&疯狂金币7 &疯狂水晶0 &在线时间2 小时&
我的简单五子棋
为什么我传图说格式不对啊?
我自己编写的一个简单五子棋
只是黑白交替下子
我的判断输赢的算法就是 以当前下子的位置 向上,向下,向左,向右还有斜向循环判断是否和当前位置所下子一样
代码贴出来import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionP
class ChessPad extends Panel implements MouseListener,ActionListener
int x = -1,
& & y = -1,
& & 棋子颜色 = 1,
& & index = 2;
int z[][] = new int[19][19];
Button button = new Button(&重新开局&),
& && & button1 = new Button(&悔棋&);
TextField text_1 = new TextField(&请黑子下棋&);
ChessPad()
setSize(440,440);
setLayout(null);
setBackground(Color.orange);
addMouseListener(this);
add(button);
button.setBounds(10,5,60,26);
button.addActionListener(this);
add(button1);
button1.setBounds(250,5,90,24);
button1.addActionListener(this);
add(text_1);
text_1.setBounds(90,5,90,24);
text_1.setEditable(false);
public void paint(Graphics g)
for(int i = 40; i &= 380; i = i+20)
g.drawLine(40,i,400,i);
g.drawLine(40,400,400,400);
for(int j = 40; j &= 380; j = j+20)
g.drawLine(j,40,j,400);
g.drawLine(400,40,400,400);
g.fillOval(97,97,6,6);
g.fillOval(337,97,6,6);
g.fillOval(97,337,6,6);
g.fillOval(337,337,6,6);
g.fillOval(217,217,6,6);
public void mousePressed(MouseEvent e)
if(e.getModifiers() == InputEvent.BUTTON1_MASK)
x = (int)e.getX();
y = (int)e.getY();
ChessPoint_black chesspoint_black = new ChessPoint_black(this);
ChessPoint_white chesspoint_white = new ChessPoint_white(this);
int a = (x+10)/20,
& & b = (y+10)/20;
if(x/20 & 2 || y/20 & 2 || x/20 & 19 || y/20 & 19)
if(棋子颜色 == 1)
this.add(chesspoint_black);
chesspoint_black.setBounds(a*20-10,b*20-10,20,20);
z[(a*20-10-30)/20][(b*20-10-30)/20] = 1;& &//保存到数组
if(JudgeWin((a*20-10-30)/20,(b*20-10-30)/20) == true)
text_1.setText(&黑子赢了&);
JOptionPane.showMessageDialog(this,&黑子赢了&,&胜利&,RMATION_MESSAGE);
ChessClear();
棋子颜色 = 棋子颜色 * (-1);
text_1.setText(&请白子下棋&);
if(棋子颜色 == -1)
this.add(chesspoint_white);
chesspoint_white.setBounds(a*20-10,b*20-10,20,20);
z[(a*20-10-30)/20][(b*20-10-30)/20] = -1;& &//保存到数组
if(JudgeWin((a*20-10-30)/20,(b*20-10-30)/20) == true)
text_1.setText(&白子赢了&);
JOptionPane.showMessageDialog(this,&白子赢了&,&胜利&,RMATION_MESSAGE);
ChessClear();
棋子颜色 = 棋子颜色 * (-1);
text_1.setText(&请黑子下棋&);
public void mouseReleased(MouseEvent e){};
public void mouseEntered(MouseEvent e){};
public void mouseExited(MouseEvent e){};
public void mouseClicked(MouseEvent e){};
public void actionPerformed(ActionEvent e)
if(e.getSource() == button)
int n = JOptionPane.showConfirmDialog(this,&你决定要从开一局么?&,&重新开局&,JOptionPane.YES_NO_OPTION);
if(n == JOptionPane.YES_OPTION)
ChessClear();
else if(e.getSource() == button1)
if(index & 2)
Component com = getComponent(index);
z[(com.getLocation().x-30)/20][(com.getLocation().y-30)/20] = 0;
this.remove(index);
棋子颜色 = 棋子颜色 * (-1);
if(棋子颜色 == 1){text_1.setText(&请黑子下棋&);}
else text_1.setText(&请白子下棋&);
else JOptionPane.showMessageDialog(this,&没有棋子了&,&错误&,JOptionPane.WARNING_MESSAGE);
public boolean JudgeWin(int x,int y)
int a = z[x][y];
int b = z[x][y];
int link[] = new int[8];
for(int c =a == z[x][y];c--)&&//水平
a = z[c][y];
link[0] = link[0] + 1;
if(c == 0)
link[0] = link[0] + 1;
for(int c =b == z[x][y];c++)
b = z[c][y];
link[1] = link[1] + 1;
if(c == 18)
link[1] = link[1] + 1;
a = z[x][y];
b = z[x][y];
for(int c =a == z[x][y];c--)&&//垂直
a = z[x][c];
link[2] = link[2] + 1;
if(c == 0)
link[2] = link[2] + 1;
for(int c =b == z[x][y];c++)
b = z[x][c];
link[3] = link[3] + 1;
if(c == 18)
link[3] = link[3] + 1;
a = z[x][y];
b = z[x][y];
for(int c = x,d =a == z[x][y];c--,d--)&&//左斜
a = z[c][d];
link[4] = link[4] + 1;
if(c == 0 || d == 0 )
link[4] = link[4] + 1;
for(int c = x,d =b == z[x][y];c++,d++)
b = z[c][d];
link[5] = link[5] + 1;
if(c == 18 || d == 18 )
link[5] = link[5] + 1;
a = z[x][y];& & //右斜
b = z[x][y];
for(int c = x,d =a == z[x][y];c++,d--)
a = z[c][d];
link[6] = link[6] + 1;
if(c == 18 || d == 0)
link[6] = link[6] + 1;
for(int c = x,d =b == z[x][y];c--,d++)
b = z[c][d];
link[7] = link[7] + 1;
if(c == 0 || d == 18 )
link[7] = link[7] + 1;
if(link[0]+link[1] &= 8 || link[2]+link[3] &= 8 || link[4]+link[5] &= 8 || link[6]+link[7] &= 8)
public void ChessClear()
this.removeAll();
棋子颜色 = 1;
index = 2;
add(button);
button.setBounds(10,5,60,26);
add(button1);
button1.setBounds(250,5,90,24);
add(text_1);
text_1.setBounds(90,5,90,24);
text_1.setText(&请黑子下棋&);
for(int i = 0;i & 18; i++ )
{for(int j = 0;j & 18; j++)
z【i】【j】 = 0;
class ChessPoint_black extends Canvas
ChessPad chesspad =
ChessPoint_black(ChessPad p)
setSize(20,20);
chesspad =
public void paint(Graphics g)
g.setColor(Color.black);
g.fillOval(0,0,20,20);
class ChessPoint_white extends Canvas
ChessPad chesspad =
ChessPoint_white(ChessPad p)
setSize(20,20);
chesspad =
public void paint(Graphics g)
g.setColor(Color.white);
g.fillOval(0,0,20,20);
public class Chess extends Frame
ChessPad chesspad = new ChessPad();
Chess(String s)
setVisible(true);
setLayout(null);
Label label = new Label(&单击左键下子,单击悔棋回到上一步&,Label.CENTER);
add(label);
label.setBounds(70,55,440,26);
label.setBackground(Color.orange);
add(chesspad);
chesspad.setBounds(70,90,440,440);
addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
setBounds(280,130,600,550);
public static void main(String args[])
Chess chess = new Chess(&五子棋&);
原来的程序有问题
只能判断一个斜的方向 现在修改好了
同时加入了悔棋
还有 怎么传图啊?
[ 本帖最后由 lovejjhao 于
13:29 编辑 ]
代码排整齐一点吧。 &&疯狂金币 + 5
帖子392&主题11&精华0&积分641&疯狂金币314 &疯狂水晶0 &在线时间131 小时&
谢谢楼主分享啊.. 要是有图示说明就更好了
成功的人不是赢在起点,而是赢在转折点!
帖子2404&主题19&精华8&积分5142&疯狂金币2070 &疯狂水晶11 &在线时间761 小时&
谢谢楼主分享!
倚楼听风雨,笑看江湖路。。。
帖子9&主题0&精华0&积分35&疯狂金币23 &疯狂水晶0 &在线时间7 小时&
好程序,学习了
程序里有个小错误,运行时候报错了~
text_1.setText(&请黑子下棋&);
for(int i = 0;i & 18; i++ )
{for(int j = 0;j & 18; j++)
这里的z[j] = 0 要改为 z[j] = 0
[ 本帖最后由 zenkico 于
16:18 编辑 ]
帖子9&主题0&精华0&积分35&疯狂金币23 &疯狂水晶0 &在线时间7 小时&
好程序,学习了程序里有个小错误,运行时候报错了~ for(int i = 0;i & 18; i++ ) {for(int j = 0;j & 18; j++) z[j] = 0; 这里的z[j] = 0 要改为 z【i】【j】= 0
汗,看来是论坛显示的问题...
[ 本帖最后由 zenkico 于
16:31 编辑 ]
帖子4&主题0&精华0&积分11&疯狂金币7 &疯狂水晶0 &在线时间2 小时&
恩 是显示问题 呵呵 谢谢支持啊~
我又加了个悔棋功能
稍微优化了下代码 呵呵
帖子21&主题0&精华0&积分58&疯狂金币30 &疯狂水晶0 &性别男&在线时间17 小时&
这代码格式,看得蛋疼。。。。
帖子4&主题0&精华0&积分11&疯狂金币7 &疯狂水晶0 &在线时间2 小时&
饿 这是记事本打得。。。。
怎么排版呀?
除了手动?
帖子21&主题0&精华0&积分58&疯狂金币30 &疯狂水晶0 &性别男&在线时间17 小时&
LZ的程序写的很好,我重新排列了下。import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionP
class ChessPad extends Panel implements MouseListener,ActionListener
{
& & int x = -1,
& && &&&y = -1,
& && &&&棋子颜色 = 1;
& & int z[][] = new int[19][19];
& & Button button = new Button(&重新开局&);
& & TextField text_1 = new TextField(&请黑棋下子&);
& & ChessPad()
& & {
& && &&&setSize(440,440);
& && &&&setLayout(null);
& && &&&setBackground(Color.orange);
& && &&&addMouseListener(this);
& && &&&add(button);
& && &&&button.setBounds(10,5,60,26);
& && &&&button.addActionListener(this);
& && &&&add(text_1);
& && &&&text_1.setBounds(90,5,90,24);
& && &&&text_1.setEditable(false);
& & }
& & public void paint(Graphics g)
& & {
& && &&&for(int i = 40; i &= 380; i = i+20)
& && &&&{
& && && && &g.drawLine(40,i,400,i);
& && &&&}
& && &&&g.drawLine(40,400,400,400);
& && &&&for(int j = 40; j &= 380; j = j+20)
& && &&&{
& && && && &g.drawLine(j,40,j,400);
& && &&&}
& && &&&g.drawLine(400,40,400,400);
& && &&&g.fillOval(97,97,6,6);
& && &&&g.fillOval(337,97,6,6);
& && &&&g.fillOval(97,337,6,6);
& && &&&g.fillOval(337,337,6,6);
& && &&&g.fillOval(217,217,6,6);
& & }
& & public void mousePressed(MouseEvent e)
& & {
& && &&&if(e.getModifiers() == InputEvent.BUTTON1_MASK)
& && &&&{
& && && && &x = (int)e.getX();
& && && && &y = (int)e.getY();
& && && && &ChessPoint_black chesspoint_black = new ChessPoint_black(this);
& && && && &ChessPoint_white chesspoint_white = new ChessPoint_white(this);
& && && && &int a = (x+10)/20,
& && && && && & b = (y+10)/20;
& && && && &if(x/20 & 2 || y/20 & 2 || x/20 & 19 || y/20 & 19)
& && && && &{
& && && && &}
& && && && &else
& && && && &{
& && && && && & if(棋子颜色 == 1)
& && && && && & {
& && && && && && &&&this.add(chesspoint_black);
& && && && && && &&&chesspoint_black.setBounds(a*20-10,b*20-10,20,20);
& && && && && && &&&z[(a*20-10-30)/20][(b*20-10-30)/20] = 1;& &//保存到数组
& && && && && && &&&if(JudgeWin((a*20-10-30)/20,(b*20-10-30)/20) == true)
& && && && && && &&&{
& && && && && && && && &text_1.setText(&黑子赢了&);
& && && && && && && && &JOptionPane.showMessageDialog(this,&黑子赢了&,&胜利&,RMATION_MESSAGE);
& && && && && && && && &ChessClear();
& && && && && && &&&}
& && && && && && &&&else
& && && && && && &&&{
& && && && && && && && &棋子颜色 = 棋子颜色 * (-1);
& && && && && && && && &text_1.setText(&请白子下棋&);
& && && && && && &&&}
& && && && && &&&}
& && && && && &&&else if(棋子颜色 == -1)
& && && && && &&&{
& && && && && && &&&this.add(chesspoint_white);
& && && && && && &&&chesspoint_white.setBounds(a*20-10,b*20-10,20,20);
& && && && && && &&&z[(a*20-10-30)/20][(b*20-10-30)/20] = -1;& &//保存到数组
& && && && && && &&&if(JudgeWin((a*20-10-30)/20,(b*20-10-30)/20) == true)
& && && && && && &&&{
& && && && && && && && &text_1.setText(&白子赢了&);
& && && && && && && && &JOptionPane.showMessageDialog(this,&白子赢了&,&胜利&,RMATION_MESSAGE);
& && && && && && && && &ChessClear();
& && && && && && &&&}
& && && && && && &&&else
& && && && && && &&&{
& && && && && && && && &棋子颜色 = 棋子颜色 * (-1);
& && && && && && && && &text_1.setText(&请黑子下棋&);
& && && && && && &&&}
& && && && && &&&}
& && && && &}
& && &&&}
& & }
& & public void mouseReleased(MouseEvent e){};
& & public void mouseEntered(MouseEvent e){};
& & public void mouseExited(MouseEvent e){};
& & public void mouseClicked(MouseEvent e){};
& & public void actionPerformed(ActionEvent e)
& & {
& && &&&ChessClear();
& & }
& & public boolean JudgeWin(int x,int y)
& & {
& && &&&int a = z[x][y];
& && &&&int b = z[x][y];
& && &&&int link1 = 0;
& && &&&int link2 = 0;
& && &&&int link3 = 0;
& && &&&int link4 = 0;
& && &&&int link5 = 0;
& && &&&int link6 = 0;
& && &&&for(int c =a == z[x][y];c--)&&//水平
& && &&&{
& && && && &a = z[c][y];
& && && && &link1 = link1 + 1;
& && && && &if(c == 0)
& && && && &{
& && && && && & link1 = link1 + 1;
& && && && && &
& && && && &}
& && &&&}
& && &&&for(int c =b == z[x][y];c++)
& && &&&{
& && && && &b = z[c][y];
& && && && &link2 = link2 + 1;
& && && && &if(c == 18)
& && && && &{
& && && && && & link2 = link2 + 1;
& && && && && &
& && && && &}
& && &&&}
& && &&&a = z[x][y];
& && &&&b = z[x][y];
& && &&&for(int c =a == z[x][y];c--)&&//垂直
& && &&&{
& && && && &a = z[x][c];
& && && && &link3 = link3 + 1;
& && && && &if(c == 0)
& && && && &{
& && && && && & link3 = link3 + 1;
& && && && && &
& && && && &}
& && &&&}
& && &&&for(int c =b == z[x][y];c++)
& && &&&{
& && && && &b = z[x][c];
& && && && &link4 = link4 + 1;
& && && && &if(c == 18)
& && && && &{
& && && && && & link4 = link4 + 1;
& && && && && &
& && && && &}
& && &&&}
& && &&&a = z[x][y];
& && &&&b = z[x][y];
& && &&&for(int c = x,d =a == z[x][y];c--,d--)&&//斜
& && &&&{
& && && && &a = z[c][d];
& && && && &link5 = link5 + 1;
& && && && &if(c == 0 || d == 0 )
& && && && &{
& && && && && & link5 = link5 + 1;
& && && && && &
& && && && &}
& && &&&}
& && &&&for(int c = x,d =b == z[x][y];c++,d++)
& && &&&{
& && && && &b = z[c][d];
& && && && &link6 = link6 + 1;
& && && && &if(c == 18 || d == 18 )
& && && && &{
& && && && && & link6 = link6 + 1;
& && && && && &
& && && && &}
& && &&&}
& && &&&if(link1+link2 &= 8 || link3+link4 &= 8 || link5+link6 &=8)
& && &&&{
& && && && &
& && &&&}
& && &&&else
& && &&&{
& && && && &
& && &&&}
& & }
& & public void ChessClear()
& & {
& && &&&this.removeAll();
& && &&&棋子颜色 = 1;
& && &&&add(button);
& && &&&button.setBounds(10,5,60,26);
& && &&&add(text_1);
& && &&&text_1.setBounds(90,5,90,24);
& && &&&text_1.setText(&请黑子下棋&);
& && &&&for(int i = 0;i & 18; i++ )
& && &&&{
& && && && &for(int j = 0;j & 18; j++)
& && && && &z[j] = 0;
& && &&&}
& & }
}
class ChessPoint_black extends Canvas implements MouseListener
{
& & ChessPad chesspad =
& & ChessPoint_black(ChessPad p)
& & {
& && &&&setSize(20,20);
& && &&&chesspad =
& && &&&addMouseListener(this);
& & }
& & public void paint(Graphics g)
& & {
& && &&&g.setColor(Color.black);
& && &&&g.fillOval(0,0,20,20);
& & }
& & public void mousePressed(MouseEvent e)
& & {
& && &&&if(e.getModifiers() == InputEvent.BUTTON3_MASK)
& & {
& & chesspad.remove(this);
& & chesspad.棋子颜色 = 1;
& & chesspad.text_1.setText(&请黑子下棋&);
& & }
& & }
& & public void mouseReleased(MouseEvent e){};
& & public void mouseEntered(MouseEvent e){};
& & public void mouseExited(MouseEvent e){};
& & public void mouseClicked(MouseEvent e){};
}
class ChessPoint_white extends Canvas implements MouseListener
{
& & ChessPad chesspad =
& & ChessPoint_white(ChessPad p)
& & {
& && &&&setSize(20,20);
& && &&&chesspad =
& && &&&addMouseListener(this);
& & }
& & public void paint(Graphics g)
& & {
& && &&&g.setColor(Color.white);
& && &&&g.fillOval(0,0,20,20);
& & }
& & public void mousePressed(MouseEvent e)
& & {
& && &&&if(e.getModifiers() == InputEvent.BUTTON3_MASK)
& && &&&{
& && && && &chesspad.remove(this);
& && && && &chesspad.棋子颜色 = -1;
& && && && &chesspad.text_1.setText(&请白子下棋&);
& && &&&}
& & }
& & public void mouseReleased(MouseEvent e){};
& & public void mouseEntered(MouseEvent e){};
& & public void mouseExited(MouseEvent e){};
& & public void mouseClicked(MouseEvent e){};
}
public class Chess extends Frame
{
& & ChessPad chesspad = new ChessPad();
& & Chess(String s)
& & {
& && &&&super(s);
& && &&&setVisible(true);
& && &&&setLayout(null);
& && &&&Label label = new Label(&单击左键下子,单击右键悔棋&,Label.CENTER);
& && &&&add(label);
& && &&&label.setBounds(70,55,440,26);
& && &&&label.setBackground(Color.orange);
& && &&&add(chesspad);
& && &&&chesspad.setBounds(70,90,440,440);
& & addWindowListener(new WindowAdapter()
& & {
& && &&&public void windowClosing(WindowEvent e)
& && &&&{
& && && && &System.exit(0);
& && &&&}
& & });
& & pack();
& & setBounds(280,130,600,550);
& & }
& & public static void main(String args[])
& & {
& && &&&Chess chess = new Chess(&五子棋&);
& & }
}复制代码
(61.11 KB)
[ 本帖最后由 tianyake1986 于
14:07 编辑 ]
帖子21&主题0&精华0&积分58&疯狂金币30 &疯狂水晶0 &性别男&在线时间17 小时&
LZ能让人机对战,就更好了。。。
[通过 QQ、MSN 分享给朋友]

我要回帖

更多关于 岁月荒唐我不负你向晴 的文章

 

随机推荐