当使用ComponentResizer类拖动jTable时,我想使其jTable在浮动/覆盖时可扩展。我正在使用Rob Camick的ComponentResizer
类。
拖动表格后当前如下:
我尝试将布局更改为null,但结果仍然相同。 在我的代码中,我刚刚添加了一个以调用ComponentResizer类:
ComponentResizer cr = new ComponentResizer();
cr.setSnapSize(new Dimension(10, 10));
cr.registerComponent(jScrollPane2);
我希望拖动表将浮动并覆盖其下面的组件。
答案 0 :(得分:2)
Swing旨在在2D空间而非3D空间中绘制零部件。
因此,当将组件添加到同一面板时,Swing将按照相反的顺序将组件添加到面板上。在您的情况下,您似乎先将组件添加到面板,然后再将滚动窗格添加到面板。
所以您可以:
setComponentZOrder(...)
方法将其值设置为0,以便最后绘制它。但是,这仍然会引起问题,因为如果将鼠标悬停在按钮上,则会显示该按钮,因为其边框已更改。这是因为Swing假定2D布局而不是3D。如果要确保始终在按钮上绘制表格,则需要覆盖面板的isOptimizedDrawingEnable()
方法。有关ZOrder绘画的更多信息,请参见Overlap Layout。
答案 1 :(得分:0)
我通过将所有组件放在一个分层的窗格中并使用“边框布局”来解决了这个问题。