首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java : Swing Worker、invokeAndWait和重叠JLabels

Java : Swing Worker、invokeAndWait和重叠JLabels
EN

Stack Overflow用户
提问于 2012-04-15 04:10:15
回答 1查看 550关注 0票数 0

嘿,伙计们,我遇到了两个问题,都与Java Swing有关。我正在用Java开发一个纸牌游戏。我使用类型的停止列表来保存每一张卡的值,我有一个main Play()方法,它使用invokeLater调用对GUI的更新,并对我的GUI类使用Singleton方法。

  1. 第一个问题相当简单。我像这样使用JLabels在GUI上创建卡片;附加相关侦听器并将它们添加到适当的面板中,在本例中是“人工面板”: 对于(int i= 0;i< (HumanHand.size());i++) { Card = HumanHand.get(i);BufferedImage cardImage = null;尝试{ cardImage =ImageIO.read(新文件(“card /”+ card + ".jpg"));} catch (IOException e) { e.printStackTrace();} JLabel picLabel =新JLabel(新ImageIcon( cardImage ));picLabel.addMouseListener((MouseListener) me);HumanHandDisplay.add(picLabel);}//HumanHandDisplay.Value();HumanHandDisplay.updateUI();

我遇到的问题是,当人类的手超过7张左右时,它会产生一个更大的面板区域,并在下面开始一排新的卡片。我想做的是,当手达到一定大小时,牌就会开始重叠(就像你手里拿着牌一样)。我和.validate()混在一起,但一无所获。你能在这里提供的任何帮助都是非常欢迎的。

  1. 我的第二个问题是关于使用挥杆工人返回人类玩家的卡片选择。我读过一些关于秋千工人的文章,但我不确定在我自己的游戏中实现这个方法的最佳方法。目前,使用控制台时,我有一个扫描仪,而不是以int的输入作为选择(特定卡在ArrayList中的位置)。我想通过点击玩家手中的卡片来选择这个int。现在我用: 字符串名称= "“+ i;picLabel.setName(名称); 若要将Card JLabels的名称设置为创建它们的for循环中的int (如图^^所示),我将使用: mouseClicked(MouseEvent e) { String name = ((JLabel)e.getSource()).getName();System.out.println(“工作”+名称);selection = Integer.parseInt(name);} 在单击其中一张卡片时返回该整数。下面是我一直用来从Play()调用GUI方法的方法: SwingUtilities.invokeLater(new (){ public void (){ GUI.getInstance().UpdateHand();}); 我的问题是,如何让Play方法调用GUI类中的一个方法,该方法与适当的侦听器(现在称它为GUIPlayerSelection() )建立手,然后等待播放机单击一张卡片,然后将int返回给主类中表示所选卡的Play()方法。我不确定如何使用调用和等待,例如,如果我使用调用和等待,它是等待卡片被设置,还是等待mouseClicked()方法完成?或者,我需要做一些其他的事情,以确保它等待鼠标被点击后,手设置?那么我将如何返回这个int呢?我被告知要使用swing员工,但是如果有人能解释我如何在这种情况下实现这一点,那就太棒了。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2012-04-15 04:29:41

对于你的第一个问题,你是有问题的框架重新油漆或布局的卡片?

如果是后者,那么您可能想看看Java布局管理器,它描述了JFrame中的内容窗格是如何组织添加到它的组件的。

如果所有这些都不适合您(我不认为它们与您所描述的一样),您可以使用setBounds方法手动对齐您的JLabels。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10159424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档