Java Superpose两个JPanels

时间:2014-04-02 08:13:40

标签: java swing paintcomponent

我正在使用Java 7来处理主要使用swing的桌面应用程序。

我想叠加两个JPanels。基本上,我有一个JPanel(1),其中我想绘制一些东西(paintComponent()),在它之上,我想显示另一个JPanel(2)填充JScrollPane(3)填充Jtable(4)。

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

我找到了正确的方法。

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

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

对于JScrollpane和JPanel:

  • jp.setOpaque(假)

对于JTable来说,它更难。 JT的背景必须是不透明的,并且每个单元的背景必须使用R,G,B,A透明。为了使它不透明,像Jpanel一样进动。然后将一个CellRenderer添加到JTable和(对于每个单元格)setBackground(new Color(0,0,0,0));

当我在ScrollPane中滚动时,我遇到了一些问题。您必须向JScrollPane添加可见性侦听器。何时更改JScrollPane可见性,重绘()Jpanel(1)。

这种方式起作用但不流畅。即使是新一代的非专业书(2014年)。 (我只从Jpanel 1中的文件中绘制图像)

所以,我希望会有更好的解决方案。

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