java课程设计蜘蛛纸牌游戏设计课程设计报告(20210204125335)_第1页
java课程设计蜘蛛纸牌游戏设计课程设计报告(20210204125335)_第2页
java课程设计蜘蛛纸牌游戏设计课程设计报告(20210204125335)_第3页
java课程设计蜘蛛纸牌游戏设计课程设计报告(20210204125335)_第4页
java课程设计蜘蛛纸牌游戏设计课程设计报告(20210204125335)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号xxxx面向对象程序设计课程设计报告题目:下拉列表运算器设计 专 业 : xxxxx班 级 :xxx姓名:xx 指导教师:xxxxxxxx 年 x 月 xx 日计算机学院面向对象程序设计课程设计报告目录1设计内容及要求 21.1 设计内容 21.2 设计要求 22概要设计 22.1 代码功能功能模块设计: 22.2 程序的总体设计流程图: 32.3 模块一的详细介绍: 32.3.1 主要的类: 32.3.2 主要的变量: 42.3.3 主要的方法: 42.4 模块二的详细介绍: 52.4.1 主要的类: 52.4.2 主要的变量: 52.4.3 主要的方法: 52.5 模块三的详细介绍:

2、62.5.1 主要类介绍: 62.5.2 主要变量: 62.5.3 主要方法: 72.6 模块四的详细介绍: 72.6.1 主要的类: 82.6.2 主要的变量: 82.6.3 主要的方法: 83设计过程或程序代码 93.1 需要实现的主要功能: 93.2 功能设计流程图: 103.3 主要功能的代码实现: 103.3.1 游戏菜单栏内游戏菜单及帮助菜单功能展示: 103.3.2 主界面的设计: 113.3.3 纸牌的初始化以及发牌操作 133.3.4 纸牌的移动以及放置 183.3.5 显示当前纸牌可行的操作: 193.3.6 回收纸牌: 214设计结果与分析 224.1 运行程序: 224

3、.2 发布程序: 234.3 总结: 245参考文献 241设计内容及要求1.1 设计内容相信很多人都玩过蜘蛛纸牌这款休闲游戏,现在随着生活水平的提高,人们 拥有充分的时间来享受休闲游戏带来的快乐,越来越多的人亲睐蜘蛛纸牌游戏。 谈起这款游戏,大家并不陌生。从WINDOWS2000统开始,就嵌入了蜘蛛纸牌游 戏,可是随着微软系统的不段升级,蜘蛛纸牌游戏的功能业变得越来越强大,游戏的界面也更加美观。用户的体验感受也更加美好。所以,蜘蛛纸牌游戏的开发 对于人类的生活娱乐更加有意义。了解蜘蛛纸牌的开发过程也是作为一名学习计 算机专业大学生所应该尝试的过程。游戏的目标是以最少的移动次数将牌面中的 十叠

4、牌以及待发的五组,共计八副牌整理移除。当所有牌被移除整理到界面的左 下方,游戏获胜。1.2 设计要求需要做的工作有学习掌握开发程序的方法,开了解发工具,进行需求分析, 根据得到的需求规格说明书设计具体的程序流程图,编写程序,修改程序,运行程序,系统调试程序、测试程序,发布程序。2概要设计2.1 代码功能功能模块设计:蜘蛛纸牌游戏共由4个部分组成,分别是:Spider.java,SpiderMenuBar.java , PKCard.java , AboutDialog.java 。SpiderMenuBar.java包含名为SpiderMenuBar的public类,其主要功能为生成蜘蛛纸牌游

5、戏的 菜单栏,实现菜单栏中各个组件的事件侦听。主要包括3个模块:图形用户界面 的构建;组件监听接口的实现:显示可执行操作的线程。PKCard.java包含名为PKCard的public类,其主要功能为:定义纸牌的属性,包括名称, 位置等相关信息。并通过相关方法实现纸牌的移动等。AboutDialog.java包含名为AboutDialog的public类,其主要功能为生成蜘蛛纸牌游戏的帮 助栏。Spider.java包含名为Spider的public类,其主要功能为生成蜘蛛纸牌游戏的框架,实 现游戏中的方法,包括:纸牌的随机生成,位置的摆放等。2.2 程序的总体设计流程图:2.3 模块一的详细

6、介绍:SpiderMenuBar.java的功能是生成蜘蛛纸牌游戏的菜单栏。实现菜单栏中的 各个组件的事件。2.3.1 主要的类:JMenuBar类、JMenu类、JMenuItem类、JRadioButton 类都是设计 GUI (图 形用户界面)的包javax.swing 中的类。可以用import引用这些类。JMenuBar 类是JComponent类的子类负责创建菜单条的。即JMenuBar类的一个实例就是一 个菜单条。JMenu类是JComponent类的子类负责创建菜单组的。即JMenu类的一个实例 化就是一个菜单。JMenuItem类是JMenu类的父类负责创建菜单项。即 JMe

7、nuItem类的一个实 例化就是一个菜单项。JRadioButtonMenuItem 类负责一个单选按钮菜单项的实现。 JRadioButtonMenuItem 是属于一组菜单项中的一个菜单项,该组中只能选择一 个项。ButtonGroup类用于为一组按钮创建一个多斥作用域。使用相同的 ButtonGroup对象创建一组按钮意味着“开启”其中一个按钮时,将关闭组中的 其他所有按钮。SpiderMenuBar类是此文件的一个主类是 JMenuBar的子类。Show类是Thread的子类用于创建线程。2.3.2 主要的变量:jNewGame jHelp变量分别是JMenu类创建的“游戏”、“帮助”

8、菜单。jItemAbout、jItemOpen、jItemPlayAgain 、jItemExit 、jItemValid 变量分 别是JMenuItem类创建的“关于”、“开局”、“重新发牌”、“退出”、”显 示可行操作”菜单项。jRMItemEasy、 jRMItemNormal 、 jRMItemHard 变量分别是 JRadioButtonMenuItem类创建的“简单:单一花色”、“中级:双花色”、“高 级:四花色”的单选按钮菜单项。group变量是ButtonGroup类创建的一组按钮选择对象。spider变量是Spider类创建的对象用于主界面窗口的实现。将在 Spider.ja

9、va 文件中介绍。2.3.3 主要的方法:public JMenuBar()创建新的菜单栏。public JMenu(String text)构造一个新菜单,用提供的字符串作为其文本。public JMenuItem(String text)创建带有指定文本的菜单项。public JRadioButtonMenuItem(String text)创建一个带文本的单选按钮菜单项。public ButtonGroup()创建一个新的单选按钮对象组。public void add(MenuItem item)向菜单增加由参数item 指定的菜单项对public void add(AbstractBu

10、tton b)将单选按钮添菜单项加到组中。public void add(JMenu c)将指定的菜单添加加到菜单栏中。public void addSeparator()将新分隔符追加到菜单的末尾所需要添加的够产生的事件处理。事件源通这个方法是addActionListen(ActionListener listen) 类型的接口。因此必须用 ActionListener参数,使得该对象成为事件源的的监视器。该方法中的参数是 ActionListener接口的类创建的对象传递给该方法的 监视器负责调用特定的方法处理事件,事件处理的接口方法将在后来的模块中进行介绍。事件源即能 的对象。监视器用

11、于对事件源进行监视以便对发生的事件做出 过调用相应的方法将某个对象作为自己的监视器创建监视器的类必须提供处理事件的特定的方法,即实现接口方法。public void addMenuListener(MenuListener l)添加菜单事件的侦听器。void menuSelected(MenuEvent e)选择某个菜单时调用。void menuDeselected(MenuEvent e)取消选择某个菜单时调用。void menuCanceled(MenuEvent e)取消菜单时调用。2.4 模块二的详细介绍:PKCard的功能是定义纸牌的属性,包括名称,位置等相关信息。并通过相关方 法实

12、现了纸牌的移动等。2.4.1 主要的类:JDialog类是创建对话框窗口的主要类。可以使用此类创建自定义的对话框, 或者调用JOptionPane中的多个类方法来创建各种标准对话框。Jpanel类是一个面板类负责创建一个面板容器,再向这个面板添加组件,然后将面板添加到底层容器中。JTabbedPane类负责创建一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。JTextArea类负责创建一个显示纯文本的多行区域。它作为一个轻量级组件Container类负责创建一个容器对象,此容器可以包含其它组件。AboutDialog类是JDialog类的子类,负责创建一个显

13、示对话框。2.4.2 主要的变量:jMainPane、jPanel1、jPanel2、变量是 JPane1 创建的面板容器。jt1、jt2 是JTextArea类创建的文本区对象。jTabbedPane是JTabbedPane类仓建的选项卡窗格对象。c变量是Container类创建的容器。2.4.3 主要的方法:public JTabbedPane()创建一个具有默认的 JTabbedPane.TOP选项卡布局 的空 TabbedPane.public JDialog()创建一个没有标题并且没有指定Frame所有者的无模式对话框。一个共享的、隐藏的窗体将被设置为该对话框的所有者。public

14、JPanel() 创建具有双缓冲和流布局的新面板容器。public JTextArea(String text) 构造显示指定文本为text的新的文本区。public void setTittle(String s)设置一个标题为 s 的对话框。public void setSize(int width , int heigth)创建宽为 width ,高位 heigth 大小的对话框。public void setResizable(boolean b)设置对话框是否可调整大小。b为true时,对话框可调整大小。public void setDefaultCloseOperation(int

15、 operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。operation 取DISPOSE_ON_CLOSE/隐藏当前窗口,并释放窗体所占有的其他资源。 public void setVisible(boolean b) 设置框口是可见还是不可见。 b取true是为可见。public Container getContentPane()方法可得到窗口的内容面板容器。public void JTextArea.setSize(int width , int heigth)设置文本区的大b)设置文本区是否可以编辑。)设置文本区中输入的文public void JTe

16、xtArea.setEditable(boolean public void JTextArea.setLineWrap(boolean b本是否可以实现在右边界自动换行。public void JTextArea.setFont(Font f)设置文本区内的字体。public void JTextArea.setForeground(Colorc)设置文本区组件的前景色。public void addTab(String title,Icon icon,Component component,String tip)添加由title 和/或icon 表示的component和tip ,其中任意

17、一个都可 以为nul参数:title - 此选项卡中要显示的标题,icon -此选项卡中要显示 的图标,component -单击此选项卡时要显示的组件,tip -此选项卡要显示的public void pack()调整此窗口的大小,以适合其子组件的首选大小和布局。2.5 模块三的详细介绍:PKCard的作用是定义纸牌的属性,包括名称、位置等相关信息。并通过相关 方法实现纸牌的移动。2.5.1 主要类介绍:JLable类负责创建标签对象。标签用于短文本字符串或图像或二者的显示 区。Thread类负责创建线程对象。MouseListener接口、MouseMotionListener 接口负责处

18、理事件源所触发的 鼠标事件,包括处理鼠标按下、释放、进入、退出、单击、连击、拖动、移动所 触发鼠标事件。Point类负责创建表示(x,y) 坐标空间中的位置的点对象,以整数精度指MouseEvent类负责创建鼠标所发生的事件对象。Flash类负责创建线程对象,不断的获取下一张纸牌。PKCard类是文件的主类,实现 MouseListener接口的JLable的子类。负责 创建纸牌对象。2.5.2 主要变量:Point point变量表示纸牌的位置对象。Point initPoint表示纸牌的初始化位置对象。int value 变量表示纸牌的内容值。int type 变量表示纸牌的类型。Stri

19、ng name变量表示纸牌的名称。Container pane变量表示标签内主容器。boolean canMove变量表示纸牌是否可以移动,值为 true时,可以移动。boolean isFront变量表示纸牌是否正面显示,值为true时,则为正面显示。PKCard previousCard变量表示上面一张纸牌2.5.3 主要方法:public void flashCard(PKCard card) 方法启动Flash线程不停的获取下 张纸牌直至完成。public void run()方法为纸牌的正面设置白色图片。card.updateUI()方法将UI属性重置为当前外观的值方法按下鼠标时事件

20、的处理方方法释放鼠标时事件处理的方方法放置鼠标时事件处理方法为判断可用列。方法鼠标拖动纸牌时事件处public void mousePressed(MouseEvent mp)法。public void mouseReleased(MouseEvent mr)public void setNextCardLocation(Point point)public int whichColumnAvailable(Point point)public void mouseDragged(MouseEvent argO)理方法。public void moving(int x,int y)方法将纸牌移

21、动(x , y)个位置。pane.setComponentZOrder(this,1)方法将主件移动到容器中指定的顺序索public PKCard(String name , Spider spider) 方法纸牌的构造函数。public void turnFront()方法令纸牌显示正面。public void turnRear()方法令纸牌显示背面。public void moveto(Point point( )方法将纸牌移动到点 pointpublic void setCanMove(boolean can)方法判断纸牌是否能够移动。public boolean isCardFront

22、()方法判断纸牌是否正面显示。public boolean isCardCanMove()方法判断纸是否能够移动。public int getCardValue()方法获得纸牌的内容值。public int getCardType()方法获得纸牌的类型。2.6 模块四的详细介绍:Spider.java 文件是蜘蛛纸牌游戏的主类文件,其主要功能是生成蜘蛛纸牌 游戏的框架,实现游戏中的方法,包括纸牌的随机生成、位置的摆放等。2.6.1 主要的类:JFrame类及其子类负责创建的对象称为窗体。JLable类负责创建标签对象。标签用于短文本字符串或图像或二者的显示 区。Container类负责创建一个

23、容器对象,此容器可以包含其它组件。PKCard类负责创建纸牌对象。Hashtable类实现一个哈希表,该哈希表将键映射到相应的值。2.6.2 主要的变量:代表“简单”等级。代表“普通”等级。代表“难”等级。设定初始等级为简单等级;Container类创建的面板容器。PKCard类创建的纸牌数组口 。£量为JLable类创建的右下角发牌区的鼠标public static final int EASY=1;public static finalint NATURAL=2 public static finalint HARD=3 private int grade=Spider.EASY

24、 private Container pane 变量: private PKCard card口变量为private JLable clickLable1 !点击响应区域。private JLable groudLable口变量为JLable类创建的背景框数组。Hshtable table变量为Hashtable类创建的一个哈希表对象,用于存储键值数据对。private int c变量为纸牌的数量。private int n变量为纸牌的等级。private int a变量为纸牌所在的列号。private int finish变量为纸牌从小到大排列成功的次数。2.6.3 主要的方法:public

25、 void setTittle(String s)设置一个标题为 s 的窗体。public void setVisible(booleanb)设置框体是可见还是不可见。b取true是为可见。public void setSize(int width , int heigth)创建宽为 width ,高位 heigth 大小的窗体。public void setDefaultCloseOperation(int operation)该方法用来设置单机窗体右上角的关闭图标后,程序会做出怎样的处理。operation 取 EXIT_ON_CLOSE结束窗体所在的应用程序。public void se

26、tMenuBar(MenuBar mb) 将此窗体的菜单栏设置为指定的菜单public void pane.setBackground(Color c)设置面板的背景颜色。public void pane.setLayout(布局对象)设置面板的布局。public Container getContentPane()方法可得到窗口的内容面板容器。public void setBounds(int a,int b,int weidth, int heigth)设置出现在屏幕中的组件距离屏幕的左面 a个像素,距屏幕上面 b个像素,组件宽为 weidth ,高为 heigth。public void

27、 newGame()方法开始新游戏。public int getC()方法返回纸牌的数量。public void setGrade(int grade)方法设置纸牌游戏的等级。public void initCards()方法进行初始化纸牌public void randomCards()方法令纸牌随机分配。public void setNA()方6设置还原纸牌游戏。public void setCardsLocation()方法设置待展开纸牌级表面初始化纸牌的位置。public void showEnableOperator()方法进行显示是否有可以移动的纸牌。public void dea

28、l()方法开始运行游戏。public PKCard getPreviousCard(PKCard card)方法获取当前纸牌上面的那一张纸牌。public PKCard getNextCard(PKCard card)方法获取当前纸牌的下面的那一张纸牌。public Point getLastCardLocation(int n)方法获取第 n 列纸牌最后一张纸牌的位置。public Point getGroundLabelLocation(int n)方法获取第 n 列纸牌的背景框架的位置。public void setGroundLabelZOrder() 放置 groundLable 组

29、件。将组件 groundLable移动到容器中指定的顺序索引。顺序(105+i)确定了绘制组件的顺 序;具有最高顺序的组件将第一个绘制,具有最低顺序的组建将最后一个绘制。在组建重叠的地方,具有较低顺序的组建将覆盖具有较高顺序的组件。public void haveFinish(int column)判断纸牌的摆放是否成功。3设计过程或程序代码3.1 需要实现的主要功能:(1)游戏主界面的设计包括背景颜色、框架大小、玩牌区域、发牌区域、 回收纸牌的区域组件的设置。(2)点击鼠标、释放鼠标、拖动鼠标时纸牌需要实现的事件处理程序。(3)移动放置一组或者单个纸牌时。需要纸牌按照由小到大的顺序排列, 并

30、列类型相同。(4)当某列的纸牌按照从 A到K得顺序排列时,程序会自动回收这组纸牌 到回收纸牌的区域。(5)当用鼠标单击发牌区域的纸牌时,如果 10列纸牌中没有空白列,则顺 序把纸牌发到每列纸牌的最下面。否则,弹出有空位不能发牌对话框。(6)当玩家不知道当前游戏如何进行时,可以点击菜单项显示可行的操作 提示玩家下一步该移动哪一张纸牌。(7)等级设置,玩家通过单击游戏菜单里相应的等级菜单项来设置游戏的 难度等级。游戏的默认等级是简单等级。3.2 功能设计流程图:3.3 主要功能的代码实现:3.3.1 游戏菜单栏内游戏菜单及帮助菜单功能展示:3.3.2 主界面的设计:代码实现如下:public Sp

31、ider()setTitle("蜘蛛牌)setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);/ 设置框架的大小setSize(1024, 742);/生成SpiderMenuBar对象,并放置在框架之上setJMenuBar(new SpiderMenuBar(this);pane = this.getContentPane();/设置背景颜色pane.setBackground(new Color(0, 139, 69);/将布局管理器设置成为nullpane.setLayout(null);设置发牌区组件的位置cl

32、ickLabel = new JLabel();clickLabel.setBounds(883,606, 121,pane.add(clickLabel);clickLabel.addMouseListener(new MouseAdapter()public void mouseReleased(MouseEvent me)if (c < 60)Spider.this.deal(););this.initCards();this.randomCards();为纸牌设置位置创建背景框组件数组int x = 20;for (int i = 0; i < 10; i+)创建背景框组件

33、groundLabeli.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.Et chedBorder.RAISED);设置组件的大小x += 101;向容器添加组件this.setVisible(true);运行程序,从发牌去发出一组纸牌3.3.3 纸牌的初始化以及发牌操作代码实现如下:public void initCards()/如果纸牌已被赋值,即将其从框架的面板中移去if (cards0 != null)for (int i = 0; i < 104; i+) pane.remov

34、e(cardsi);int n = 0;/通过难度等级,为n赋值if (this.grade = Spider.EASY)n = 1;else if (this.grade = Spider.NATURAL)n = 2;elsen = 4;/ 为card赋值for (int i = 1; i <= 8; i+)for (int j = 1; j <= 13; j+)cards(i - 1) * 13 + j - 1 = new PKCard(i % n + 1)+ "-" + j,this);假设n=1,此时i%n的值为0,则1%n+1的值为1,所以创建的图片应

35、该是1-1到1-13全是黑桃,为同一花色,n等于其它 值时类似。如图所示:简单,单一花色:24中级,双高级,四花色:/随机纸牌初始化将纸牌的顺序打乱/*纸牌随机分配*/public void randomCards() PKCard temp = null;/随机生成牌号for (int i = 0; i < 52; i+)int a = (int) (Math.random() * 104);int b = (int) (Math.random() * 104); temp = cardsa;cardsa = cardsb;cardsb = temp;设置纸牌的位置public voi

36、d setCardsLocation()table = new Hashtable();c = 0;finish = 0;n = 0;a = 0;int x = 883;坐标位于界面的右下角区域/初始化待展开的纸牌for (int i = 0; i < 6; i+)for (int j = 0; j < 10; j+)int n = i * 10 + j;pane.add(cardsn);/将card转向背面cardsn.turnRear();/将card放在固定的位置上cardsn.moveto(new Point(x, y);/将card的位置及相关信息存入table.put(

37、new Point(x, y), cardsn);x += 10;x的值循环一次增10,表示下一叠纸牌的位置x = 20;y=4 :坐标位于上方的玩牌区域最左边一个背景框的位置。初始在表面显示的纸牌for (int i = 10; i > 5; i-)for (int j = 0; j < 10; j+)生成索引值值超过104则退出本次循环 将索引信所指的纸牌添加到面板容器 将纸牌转到背面去将纸牌移动的固定的位置上去将纸牌及其对应的位置存入到哈希表中x += 101;x = 20;Xy -= 5;Y背景框间隔的X值为101坐标回到原先的位置处坐标会向下移动5个单位,表示第二行纸牌的

38、初始化开方法:游戏运行public void deal()this.setNA();/ 判断10列中是否空列for (int i = 0; i < 10; i+)if (this.getLastCardLocation(i) = null)有空位不能发JOptionPane.showMessageDialog(this,”牌!","提示",JOptionPane.WARNING_MESSAGE); return;int x = 20;for (int i = 0; i < 10; i+)Point lastPoint = this.getLastCar

39、dLocation(i);/ 这张牌应“背面向上”if (c = 0)当还没有发过牌时,每列的纸牌中y坐标相差5个单位。/ 这张牌应“正面向上”elselastPoint.y += 20;否则是两张正面显示纸牌差值table.remove(cardsc + i.getLocation();cardsc + i.moveto(lastPoint);table.put(new Point(lastPoint), cardsc + i);cardsc + i.turnFront();cardsc + i.setCanMove(true);/将组件card移动到容器中指定的顺序索引。this.pane

40、.setComponentZOrder(cardsc + i, 1);Point point = new Point(lastPoint);if (cardsc + i.getCardValue() = 1)int n = cardsc + i.whichColumnAvailable(point);point.y -= 240;PKCard card = (PKCard) this.table.get(point);if (card != null && card.isCardCanMove()判断纸牌是否可以回收以及 回收的总次数x += 101;c += 10;3.3.4

41、 纸牌的移动以及放置代码实现如下:用鼠标拖动纸牌public void mouseDragged(MouseEvent arg0) if (canMove)int x = 0;int y = 0;Point p = arg0.getPoint();x = p.x - point.x;y = p.y - point.y; this.moving(x, y);方法:放置纸牌public void setNextCardLocation(Point point) PKCard card = main.getNextCard(this); if (card != null)if (point = nu

42、ll)card.setNextCardLocation(null);main.table.remove(card.getLocation();card.setLocation(card.initPoint);main.table.put(card.initPoint, card);elsepoint = new Point(point);point.y += 20;card.setNextCardLocation(point);point.y -= 20;main.table.remove(card.getLocation();card.setLocation(point);main.tabl

43、e.put(card.getLocation(), card); card.initPoint = card.getLocation();3.3.5 显示当前纸牌可行的操作:代码实现如下:返回值:void方法:显示可移动的操作public void showEnableOperator()int x = 0;out: while (true)Point point = null;PKCard card = null;doif (point != null) n+;point = this.getLastCardLocation(n);while (point = null)point = th

44、is.getLastCardLocation(+n);if (n = 10) n = 0;x+;if (x = 10) break out;card = (PKCard) this.table.get(point);while (!card.isCardCanMove();while (this.getPreviousCard(card) != null&& this.getPreviousCard(card).isCardCanMove() card = this.getPreviousCard(card);if (a = 10)a = 0;for (; a < 10;

45、 a+)if (a != n)Point p = null;PKCard c = null;doif (p != null)a+;p = this.getLastCardLocation(a);int z = 0;while (p = null)p = this.getLastCardLocation(+a);if (a = 10) a = 0;if (a = n) a+;z+;if (z = 10) break out;c = (PKCard) this.table.get(p);while (!c.isCardCanMove();if (c.getCardValue() = card.ge

46、tCardValue() + 1) card.flashCard(card);tryThread.sleep(800);catch (InterruptedException e) e.printStackTrace();c.flashCard(c);a+;if (a = 10)n+;break out;n+;if (n = 10)n = 0;x+;if (x = 10)break out;3.3.6 回收纸牌:代码实现如下:返回值:void方法:判断纸牌的摆放是否完成public void haveFinish(int column)Point point = this.getLastCardLocation(column);PKCard card = (PKCard) this.table.get(point);dothis.table.remove(point);card.moveto(new Point(20 + finish * 10, 580);/将组件移动到容器中指定的顺序索引。pane.setComponentZOrder(card, 1);/将纸牌新的相关信息存入Hashtablethis.table.put(card.getLocation(), card);card.setCan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论