我正在使用Java 7来处理主要使用swing的桌面应用程序。
我想叠加两个JPanels
。基本上,我有一个JPanel
(1),其中我想绘制一些东西(paintComponent()
),在它之上,我想显示另一个JPanel
(2)填充JScrollPane
(3)填充Jtable
(4)。
组件(2,3和4)将具有透明背景,以便在JPanel
1上看到绘制的组件。
知道如何组织/做/实现这个吗?
谢谢!
答案 0 :(得分:1)
我找到了正确的方法。
我的Jpanel(1)是一个borderLayout,它有一个paintComponent(gg)方法,可以绘制几个东西。 我在该面板中添加了一个JScrollPane(3),并在其中添加了一个Jtable(4)。
这个想法是3& 4具有透明背景。
对于JScrollpane和JPanel:
对于JTable来说,它更难。 JT的背景必须是不透明的,并且每个单元的背景必须使用R,G,B,A透明。为了使它不透明,像Jpanel一样进动。然后将一个CellRenderer添加到JTable和(对于每个单元格)setBackground(new Color(0,0,0,0));
当我在ScrollPane中滚动时,我遇到了一些问题。您必须向JScrollPane添加可见性侦听器。何时更改JScrollPane可见性,重绘()Jpanel(1)。
这种方式起作用但不流畅。即使是新一代的非专业书(2014年)。 (我只从Jpanel 1中的文件中绘制图像)
所以,我希望会有更好的解决方案。