问题标签 [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 回答
1056 浏览

java - 具有透明层的 JLayeredPane 导致绘制不正确

我有一个有两层的 JLayeredPane。顶层是完全透明的,作为一个玻璃窗格,它捕获鼠标事件,然后将它们分派到它下面的窗格中。由于未知原因,底层无法正确绘制。我是否必须向它发送绘画事件或其他什么?

顺便说一句,我会使用 Frame 的玻璃窗格,但我无法做到。我被困在使用建立在 Swing 之上的 GUI 框架提供的 JPanel 上。我尝试使用 SwingUtilities 来获取父框架,但它总是返回 null。

0 投票
1 回答
2223 浏览

java - 调整 JLayeredPane 图层的大小

我在尝试使用JLayeredPane.

我做到了这一点:

无侧板

(希望你能看到块G6在标签上有一个绿色边框,显示选择了哪个块)

但是,当我将我的 2 添加SidePanel到我的ChessBoard面板上,然后在顶部有另一层,其标签应该准确地覆盖每个板块,但它没有:

带侧板

如您所见,绿色边框周围的块G2已关闭。

SidePanel当我将s 添加到 theChessBoard并将其添加到底层并将其大小设置为 600x600 然后添加顶层标签时,我将其缩小到明显的范围,该标签将完全适合块ChessBoard和绿色边框围绕选定的JLabel(以及下部ChessBoard方块[黑色或白色])绘制,由于SidePanels 减少了 600x600 的棋盘实际大小,它偏离中心绘制,现在它将是600-sp1.getWidth()x 600-sp2.getHeight()。我尝试设置顶层的边界和首选大小来补偿它,但它似乎没有用。感谢您提供任何帮助:

ChessBoardTest.java:

SidePanel.java:

棋盘.java:

ChessPieceLayer.java:

PiecePanel.java:

ChessPieceMouseListener.java:

起初我使用:

然后我尝试了:     

但结果并没有什么不同

0 投票
3 回答
305 浏览

java - 使用摆动的动画管道

我尝试优化我的应用程序的绘图。目前我已经实现了一个动画以及几个 GUI 组件。有些是完全分开的,有些是相互重叠的。目前我面临摆动组件重叠的问题。GUI 的一部分,与我的动画重叠,需要绘制大量字符串和 - 放入放置的 Jlist 中 - 常见的摆动组件。

结果,重叠的 GUI 会随着动画的更新而重绘。我尝试使用很多不同的方法来确保在彼此面前绘制的内容。GlassPane、Jlayeredpane 之类的东西。不幸的是,在任何这些尝试中,重叠的 Menus paintcomponent 方法,只需要在用户与其交互时被调用,由于动画而被频繁调用,并导致相当高的 cpu 使用率。

我试图在分层窗格中以较低的顺序定位菜单,即:

在画家的绘画过程中,我尝试修改该区域 - 即:

好吧 - 只要画家组件 !isOpague(); 下面的所有组件都将重新绘制。不幸的是,如果我确实将菜单放在更高的顺序,它们也需要随着任何动画更新而重新绘制。

有人知道如何避免使用动画组件永久重绘重叠组件吗?

我见过的唯一解决方案是使用重量级容器。不幸的是,相对定位在移动目的期间也表现出一种行为,这是不合适的。

感谢您的任何建议!

0 投票
1 回答
3237 浏览

java - JLayeredPane 的自动内容大小调整

我正在尝试创建一个应用程序,JLayeredPane它会根据父级的大小自动缩放JFrame(这是BorderLayout在框架的内容窗格上用作布局管理器的简单部分)。困难的部分是我希望 的内容JLayeredPane自动调整大小JLayeredPane(因此JFrame也是)。

事实上,我想要实现的功能很像 Netbeans 中的可停靠控制台,就像单击时出现在编辑器的“顶部”一样,当被关闭时再次隐藏并停靠在状态栏中的“控制台”字样中。显然,我也希望调整大小的行为能够正常工作。实现这一目标的最佳方法是什么(如果不是JLayeredPane)?

0 投票
1 回答
1466 浏览

java - 将 JPanel 分层,底层为背景图像

我正在尝试编写棋盘游戏。我想加载游戏板的图像,然后在其上加载透明网格。我编写了一个自定义面板来绘制图像并将其添加到分层面板中作为级别 0。然后我JPanel使用 aGridLayout并将其添加到级别 1。然后将分层窗格放入滚动窗格中以说明背景图像是有点大。希望在任何给定时间让大部分网格都是透明的,但是如果玩家棋子进入一个正方形,那么我会将那个正方形设置为代表该棋子的颜色。但是,当我将顶部面板设置为透明时(通过调用setOpaque(false)),我只是得到一个白色背景,没有图像存在。为什么是这样?

这是创建面板并嵌套它们的主程序中的代码。背板是外框。稍后它是 setVisible ,所以这不是问题。

0 投票
2 回答
129 浏览

java - 在摇摆问题中对 GUI 进行编程

我目前正在尝试为我正在制作的游戏创建一个 gui,但我开始遇到一些麻烦。由于某种原因,我无法将计时器的背景更改为蓝色,并将 gameGUI 的背景更改为主板的绿色。这是我第一次在摇摆中编程,所以我对这一切都很陌生。

我也想知道我是否以正确的方式使用 layeredpane。该板需要能够成为分层窗格,以便我可以一直将图像放在它上面。计时器将是一个顶部有太阳的天空,并且云也会在某个时间点从其上方掠过。

如果你能给我一些建议并一路帮助我,即使你只是在这里和那里纠正一些小问题,那也很棒。

谢谢你。

0 投票
1 回答
217 浏览

java - Swing 游戏布局问题

我正在努力在分层窗格中实现游戏,但遇到了一些布局问题。出于某种原因,没有正确排列。最后我的框架顶部有一个空白区域,框架永远不会延伸到正确的尺寸以适合所有东西。我试过 frame.pack() 因为我以前做过(没有分层窗格),但这似乎也不起作用。

如果有人可以帮助我,我将不胜感激。我有一种感觉,我缺少一些小东西。

0 投票
0 回答
424 浏览

swing - 如何在 netbeans 拖放中为 JLayeredPane 使用 setLayout?

我尝试将 JLayeredPane 与 netbeans 拖放一起使用

我需要设置它的布局和设置层(在设计视图中)

但我找不到 setLayout

如果我手动编写 setLayout(在源代码视图中),

它不会影响设计视图

(我需要设计视图中的效果让我更简单)

我可以这样做吗?如何?

非常感谢任何帮助

编辑 :

例如,我想在 microsoft office 2007 中创建一个按钮 ..(它位于角落(西北))位于工具栏和某些东西(可能是容器)之间的按钮..所以我认为我必须使用 layeredpane 使组件可以在前面彼此的..如果我可以使用netbeans拖放(在设计视图中)和JLayeredPane的setLayout效果会更有帮助..(我只想用gridbaglayout使许多组件可以在彼此前面)(只是尝试创建可爱的用户界面)

0 投票
1 回答
1719 浏览

java - 如何使 JLabel 浮动在 JScrollPane 内的相同 JComponent 之上

里面有20JLabelJScrollPaneJLayeredPane上面提到的还有floatingLabel JscrollPane

要求是,当我单击内部时JScrollPane,它应该自动滚动以使JLabel索引 11完全可见。JLabel当用户滚动时, floatingLabel 应该开始在 11 以上浮动JScrollPane,请参阅AdjustmentListener

问题[编辑]:1.如何检查 JLabel 11 是否完全或部分不可见?

SSCCE:

解决的问题:

  1. JLabel 11点击后不完全可见,被裁剪了一半
  2. 单击时我无法计算浮动面板的正确位置
  3. 我不知道如何计算滚动时的新位置
0 投票
2 回答
712 浏览

java - 带有 JDialog 的 JLayeredPane

将 JLayeredPane 添加到 JDialog 时,我无法使任何组件出现在 JLayeredPane 上。

我也一直无法找到显示这可以在合理大小的代码块中完成的网络资源。iv 看到的每一个景象都“声称”这是可以做到的,然后显示了一个令人作呕的长解决方案。

我想要的是在一个 JLayered 窗格中添加一个 Button 并将一个带有图标的 JLabel 也放在这个窗格上。在英语中,我想要一个按钮,其文本前面有一个图标。

那就是 awt Button,因为我一直无法找到一种方法来制作一个看起来像摇摆 JButton 的系统。

编辑:你能帮我做一些更具体的事情吗?我认为我在帖子中有点含糊不清。