问题标签 [jlayeredpane]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1686 浏览

java - 将带有 JPanel 的 JToggleButton 放入 JTable 单元格中

我需要一个 JToggleButton(具有自定义背景),其中包含一个 JPanel,其中包含多个 JLabel。那部分有效。

该按钮随后被放置在 JTable 单元格中,并且旨在由用户按下。问题是我只能在第二次点击时按下按钮。Apperenty 在第一次单击时,焦点首先跳转到带有 JLabels 的面板,然后才跳转到实际按钮。

我尝试了几件事来尝试解决这个问题,但同样的问题仍然存在。A) 将带有标签的 JPanel 直接放在 JToggleButton#add() 上。B) 使用 JLayeredPane 将 Button 和 JPanel 放置到 JToggleButton 采用约束 Integer(-) 的不同层上,以便带有 JLabels 的 JPanel 在顶部保持可见

你有什么建议吗?谢谢

下面是说明问题的示例代码。单击该按钮仅第二次起作用。

0 投票
1 回答
5739 浏览

java - JLayeredPane 和绘画

我正在编写一个应用程序,它有一个 JLayeredPane(称为层),其中包含不同层中的两个 JPanel。我覆盖了底部JPanel 的paintComponent 方法(称为grid_panel),因此它绘制了一个网格,并覆盖了顶部JPanel 的paintComponent 方法(称为circuit_panel),因此它绘制了一个电路。

以下是结构的摘要:

我希望 grid_panel 保持静态,即不进行任何重绘(最初的重绘除外),因为它不会改变。

问题是,每当我调用 circuit_panel.repaint() 时,grid_panel 也会被重新绘制! 这绝对是没有效率的。

我认为这是由于 JLayeredPane 的热切绘画行为。有没有办法在 JLayeredPane 中禁用此功能?

如果你有兴趣看看上面的效果,我写了一个小演示程序:

0 投票
2 回答
388 浏览

java - 在最后一个 internalFrame 前面添加

我正在使用 Java Swing。我在分层窗格中的菜单的帮助下添加内部框架。

每当在其中添加一个新层(另一个新的内部框架)时,它都会位于所有框架的后面。您能否告诉我如何将新添加的 jInternalFrame 置于 jLayredPane 上所有现有内部框架的顶部。

谢谢!

0 投票
1 回答
1486 浏览

java - 在 Java 游戏中实现拖放

我正在开发一个棋盘游戏,它是一个 8x8 网格,有 5 个不同颜色的图像。只要对象在一行或一列中彼此相邻,它们就可以交换。如果切换导致 3 个或更多对象在一行或一列中相同,它们将被删除。如果切换不导致匹配,则切换不会发生。当物体被移除时,板子会塌陷,使得位于移除物体上方的物体落下以取代它们的位置,新的物体从顶部落入以填充空间。

我想知道一种实现拖动操作和物体掉落的好方法。我应该使用分层窗格吗?

任何想法都会帮助我。

0 投票
3 回答
282 浏览

java - Java Swing 混合面板

这似乎是一个新手问题,除了我长期以来一直试图围绕 Swing 框架进行思考。

如果您提供至少 500 像素正方形的图像 dog.jpg,则以下代码应在滚动窗格中显示该图像。如果它显示什么,我可能不会绝望地举起双手。我错过了什么?

谢谢!

0 投票
1 回答
254 浏览

java - 分离 JLayeredPanel

我在分层窗格中有一组面板。我需要一个分隔符来将侧边栏与顶部栏和 tabbedPanel 分开。我留下了一个 10 像素的缓冲区来放置它。不幸的是,可能由于它是 JLayeredPane,我无法查看它。

有没有办法定义分隔符的 X 位置?因为这应该解决它。无论哪种方式,这是一个代码示例,我从中删除了大部分信息。

或者,提供一个完全不同的解决方案,只要我可以从侧边栏和其他两个面板中获得定义的拆分。我已经尝试将 BorderLayout.WEST 应用于侧边栏,但由于它是 JLayeredPane,它给了我错误。

0 投票
2 回答
251 浏览

java - 如果 JLayeredPane 中的面板在添加到 JLayeredPane 后被编辑,它会发生变化吗?

使用将 JPanel 添加到 JLayeredPane 之后

添加后,如果我们更改面板,JLayeredPane 中的面板是否也会更改?

0 投票
1 回答
513 浏览

java - JLayeredPane 格式问题

我有一个问题JLayeredPane,我可能正在做一些非常简单的事情,但我无法绕过它。我遇到的问题是所有组件都合并在一起并且没有顺序。你能否纠正这个问题,因为我不知道。我想做的顺序是这样的布局


输出


label1(后面)
输入(前面)


和主班。

感谢您抽出宝贵时间,我不希望为我编写代码,我想要的只是提示我哪里出错了。

0 投票
1 回答
656 浏览

swing - JLayeredPane 上的透明 JLabels

我试图在重叠的 JLayeredPane 上显示几个 PNG 图像。

这是生成包含图像的 JLabel 并将其添加到 JLayeredPane 的当前代码:

和 createLabelForImage() 方法:

我得到的是对象正确重叠,但 PNG 图像的透明背景被一种白灰色替换。

ImageIcon 有问题吗?使用 JLayeredPane ?也许我必须设置诸如 label.setBakground(sort_of_transparency_code) 之类的东西?

提前致谢 :)

0 投票
1 回答
141 浏览

java - 获取 Swing 组件的适当尺寸

我正在尝试 JLayeredPane。所以,在下面的代码中,我创建了 aJLayeredPane和 a JLabel。我将标签添加到分层窗格中,然后将其添加到JPanel. 然后将该面板添加到 JFrame。

现在的问题是,如果我没有声明label.setBounds(20, 20, 400, 40);,那么标签不会出现在分层窗格上。这提出了两个问题:

  1. 为什么setBounds如此重要?
  2. 可能是我之前的问题回答的一部分,标签在设置边界之前的初始高度和宽度为0,这可能setBounds是重要的原因。在这种情况下,我想知道在将 Swing 组件添加到JLayeredPane. (如果我的 bounds 小于组件的适当大小,组件会出现隐藏)

编辑:第一个问题在这里得到了更详细的回答。