gpt4 book ai didi

Java 叠加两个 JPanel

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:24 24 4
gpt4 key购买 nike

我正在开发 Java 7 桌面应用程序,主要使用 swing。

我想叠加两个 JPanel。基本上,我有一个 JPanel (1),我想在其中绘制一些内容(使用 paintComponent()),并在其顶部显示另一个 JPanel (2),其中填充有 JScrollPane (3),其中填充有 Jtable (4)。

组件(2、3 和 4)将具有透明背景,以便在 JPanel 1 上看到绘制的组件。

知道如何组织/执行/实现这个吗?

谢谢!

最佳答案

我找到了正确的方法。

我的 Jpanel (1) 是一个 borderLayout,并且有一个 PaintComponent(gg) 方法,可以绘制一些东西。我向该面板添加了一个 JScrollPane (3),并在其中添加了一个 Jtable (4)。

这个想法是 3 和 4 有透明背景。

对于 JScrollpane 和 JPanel:

  • jp.setOpaque(false)

对于 JTable 来说,这就更困难了。使用 R、G、B、A,JT 的背景必须是不透明的,并且每个单元格的背景必须是透明的。要使其不透明,请像使用 Jpanel 一样进行处理。然后将 CellRenderer 添加到 JTable 并(对于每个单元格) setBackground(new Color(0,0,0,0));

当我在 ScrollPane 中滚动时,我遇到了一些问题。您必须向 JScrollPane 添加可见性监听器。当 JScrollPane 可见性发生变化时,repaint() Jpanel (1)。

这种方式可以工作,但不流畅。即使是新一代 untrabook(2014)。(我只从 Jpanel 1 中的文件中绘制图像)

所以,我希望能有一些更好的解决方案。

更新:请参阅:Add background image in JTable

关于Java 叠加两个 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com