我试图在GUI中显示卡片,我希望重叠卡片以节省空间。然而,我似乎无法让它发挥作用。我目前正在使用MigLayout,但感觉它更像是一个JLabel问题,而不是其他问题。
要把它描述在一个高水平,考虑在现实生活中玩纸牌游戏。当你正常拿牌时,你只需要看到牌的一部分,因此牌的大部分被另一张牌重叠,以此类推,直到最后一张牌完全显示出来,因为上面没有任何东西。我想重叠的方式,只有一部分卡下面显示,然后顶部的卡是完全显示。
当前的问题是,当我向JPanel添加JLabel时,它会将最新的标签放在已经存在的标签后面。我希望它在已经存在的东西前面。我似乎找不到任何方法可以让我设置哪个标签在前面。
我想做一些类似的事情:
将card1放入单元格0将card2放入单元格0,并将y位置调换到两张卡重叠的任何区域的顶部都有card2
简单地添加它就会把它放在后面,这意味着在组件的显示上有一个先到先得的优先级。我宁愿后来居上,先服务。就像我说过的,我没有找到一种允许这些的方法。
如果有任何不清楚的地方,请告诉我。提前谢谢。
看看重叠布局,它解释了更多关于ZOrder是如何工作的,甚至可能为您提供一个布局管理器来帮助您的纸牌游戏。
它看起来像是JPanel从容器继承而来,容器有一个方法setComponentZOrder()
,听起来它正是您所需要的。
留档
问题内容: 是否可以在另一个JLabel上添加一个JLabel?谢谢。 问题答案: 简短的回答是肯定的,一个是一个,所以它可以接受(A 是的子类)添加到使用方法: 在以上代码中,将添加到中。 但是,从视觉上看,显示了带有文本“ Hello”的标签,因此无法真正看到包含在标签中的标签。 因此,问题就来了,一个人到底想通过在另一个标签之上添加一个标签来完成什么工作。 编辑: 从评论: 好吧,我想做的是
问题内容: 我一直在尝试为我的Roguelike游戏添加一个JLabel。不幸的是,它似乎不起作用。到目前为止,这是我的代码: 我已经阅读了一些其他问题的解决方案,并且只需将JLabel添加到另一个解决方案中就可以完成。它不按这里的预期工作,为什么? PS:我不想为我的JPanel使用JLayeredPane。 问题答案: 不要使用组件(即JLabels)创建游戏环境。相反,您可以绘制所有游戏对象
问题内容: 在任何人建议使用HTML之前,我都会在后面解释为什么这不是一种选择。我有一个表,其中包含带有文本单元格的列。我需要能够突出显示每个单元格中的一些文本。因此,例如,如果该单元格包含“ cat foo dog”,我可能要突出显示foo。 我当前的方法是使用一个自定义TableCellRenderer,它将html放入要呈现的JLabel组件中,并且效果很好。然后我注意到,当单元格中的文本变
问题内容: 我正在尝试用GUI制作棋盘游戏。我用 播放器的名称创建了一个JLabel,并希望将其用作令牌。然后,我制作了另一个JLabel, 其中包含板的图像。我将两个标签都添加到boardPanel上, 现在,这些标签并排放置。我如何做到这一点, 以使JLabel带有名称而不是并排放置在带有img的JLabel上? 对于包含两个 标签的面板,我应该考虑些什么吗?像某个布局管理器一样? [只是我的
问题内容: Java可以显示png,jpg和其他图片格式,但是我必须通过获取文件路径在JLable中显示bmp文件。 ImageIcon支持典型图像。 在我正在工作的项目中,我无法打开bmp文件并以jpg格式存储同一文件,因为我不允许在运行时存储某些内容。我只能将图像保存在内存中。但是我不知道该怎么做。 我怎样才能显示在 ? 谢谢 问题答案: 我发现一些用Java 1.5编写的类,但是您可以轻松更
问题内容: 亲爱的大家,我遇到了挥杆相关的问题。由于违反公司政策,我无法共享代码,因此我将尽力解释该问题。 简而言之,我创建了一个扩展包含JLabel的JWindow的类。JLabel的文本是通过计时器对象随机更新的,该计时器对象使用scheduleAtFixedRate方法每50毫秒实例化一个TimerTask。JLabel中的值是通过在一个单独的线程(称为传输线程)中调用一个方法来检索的,该线