问题标签 [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 投票
1 回答
727 浏览

java - Swing JLayeredPane.getLayer() - 文档错误或实际副作用?

我正在尝试找出有关Swing 中JLayeredPane的一些信息。如果有人使用过这个类,我们将不胜感激。

getLayer(JComponent c) 的文档指出:

获取 JComponent 的 layer 属性,它不会像 setLayer() 那样产生任何副作用。(绘画、添加/删除等) 通常您应该使用实例方法 getLayer()。

显然,这里有一些错误,因为这是实例方法 getLayer() (没有重载版本)

实际上是否应该在这里进行不同的调用,或者是有人太急于从 putLayer() 复制:

设置 JComponent 的 layer 属性。此方法不会导致任何副作用,例如 setLayer()(绘画、添加/删除等)。通常,您应该使用实例方法 setLayer(),以获得所需的副作用(如重新绘制)。

0 投票
4 回答
1110 浏览

java - 如何在 mouseDragged 事件下的 DRAG_LAYER 上添加 JLabel

我目前正在开发一个拖放应用程序,我真的很想知道 JLayeredPane 内部发生了什么,并且我得到了一个特定的程序行为......

这是交易:

我在 DEFAULT_LAYER 上放置了一个棋盘。
我还有一个棋子,我想在移动它时将其添加到 DRAG_LAYER 中。

但是我有恋物癖...

我想用这条线

仅在 mouseDragged 事件下。

因此,当我这样做时,我的 chessPiece 在移动鼠标时消失并隐藏在棋盘后面(?!?)

当我将上面的行更改为:

一切又变得正常了。

为什么会这样?

0 投票
2 回答
25942 浏览

java - 将 JLayeredPane 添加到 JPanel

我正在尝试将 JLayeredPane 添加到 JPanel,然后将图像(JLabel 图标)和按钮添加到 JLayeredPane,但均未显示。我已经测试了没有按钮和分层窗格的图像,所以我知道它有效。这是我正在使用的一些代码。我有什么遗漏或做错了吗?

0 投票
1 回答
1129 浏览

java - Java:在 JMF Lightweight_Rendered 播放器上画线

我遇到了一个问题:我的应用程序中有一个 JMF-Videoplayer,我想在它上面画画(视频继续播放)。我遇到的问题是我使用了 JLayeredPane,我在 Layer.Content_Layer(index 0) 上添加了 VideoPlayer-Control,在 Layer.Modal_Layer(index 300) 上添加了 JPanel (setOpaque(false))。

发生的情况是,当我添加 JPanel 时,它不是不透明的,但我看到了画线,但没有看到视频。如果我之前添加了 JPanel(没有更改图层的索引),我添加了视频控件,然后我看到了视频,但看不到画线。

有人知道为什么这不起作用以及如何使它起作用吗?

我曾考虑在视频控制组件中添加一个 ActionListener,并且每当图像发生变化时,我都会将这张图像绘制为 JPanel 上的背景,但我担心这会花费我宝贵的时间。

我的代码如下所示:

videoPlayerPanel 也是一个 JPanel,其中包含 JLayeredPane... 如您所见。

编辑:好的,我对其进行了一些研究,发现

返回一个 java.awt.Component 并且此类组件不支持不透明度 - 也许这就是我看不到或只看到 drawPanel 的原因。

因此,目前我正试图通过将其添加到自定义面板中直接绘制到视频组件上,在该面板中我覆盖了绘制方法以绘制所有线条。还有其他想法吗?

0 投票
1 回答
2738 浏览

java - 玻璃窗格与分层窗格的用例

我一直对玻璃窗格和分层窗格之间的区别有点模糊。玻璃窗格本质上只是“根窗格的最顶层”,还是表现不同?您什么时候会使用分层窗格而不是玻璃窗格?

0 投票
2 回答
5223 浏览

java - 绘制时Java Swing NullPointerException

我正在使用自定义的 JLayeredPane。我有几个形状需要在 JLayeredPane 的不同图层上绘制。

为了测试这一点,我创建了一个 JPanel 并询问它的图形。然后我在 JPanel 上绘制一个测试矩形(准备图形),并在 JLayeredPane 的paintComponent 方法中最终绘制所有内容。但这失败了(NullPointerException)。

}

为什么我不能从我的 JLayeredPane 中绘制这样的 JPanel?我可以从我的paintComponent 方法中直接在我的JLayeredPane 上绘制,但这是在JLayeredPane 的默认面板上。我需要在我的 JLayeredPane 中添加的几个图层上创建和绘制。

我究竟做错了什么?:秒

0 投票
1 回答
844 浏览

java - 将 JTable 添加到 layeredPane

我们可以在 Java 中将 JTable 添加到 JLayeredPane 吗?

0 投票
1 回答
775 浏览

java - 重量级组件的透明背景

我有问题。在 LayeredPane 中,我有 2 个组件:重量级组件和 JComponent(或我可以在其中绘制文本的任何其他组件),它们位于第一个组件之上。我希望 JComponent 具有透明背景,但它具有黑色背景。重量级组件是渲染视频的组件,而 JComponent 是我在其中绘制文本的组件。此文本应以透明背景打印。

我尝试使用 GlassPane,但 glassPane 的玻璃含量显示在轻量级组件上方和重量级组件下方。

是否有可能在重量级组件(画布)上方绘制文本?

附言。我不能重载paint方法,因为我得到了HeavyComponent类的对象,它是Canvas的子类。

0 投票
4 回答
470 浏览

java - 无法设置鼠标光标 JLayeredPane

我遇到了一个问题,我似乎无法弄清楚,也无法在网络上的任何地方找到答案。

我有一个 JLayeredPane,当它只有一个子面板时,我可以使用 setCursor() 正确设置光标。光标出现,一切都很好。但是当我在 JLayeredPane 中添加一个额外的 JPanel 时,光标不再出现

例如这有效:

但这不是:

任何人都知道我如何让自定义光标在 JLayeredPane 中工作

0 投票
1 回答
462 浏览

java - java中JLayeredPane的层数有限制吗?

我有一个用于 ATC 的 java 应用程序。我刚开始使用 GUI。首先,我有一个大型机,一个JLayeredPane在这个大型机上,以及带有标签(有)的面板ImageIconsJLayeredPane.

我已经成功地将大约 4 个面板(面板有标签,标签有ImageIcons)添加到JLayeredPane. 当我去添加第五个面板时,它给了我一个错误的 GUI 显示。

这是我在添加pnlplane(4 层)之前得到的:

这就是我得到的(当我尝试添加一个pnlplane - 5 层 [问题]):

这是我应该得到的:

更简单的方法是在 Photoshop 中将所有图像组合成一张大图像。但是,我想知道是否还有其他可用的修复程序。