在Swing中绘制组件顶部?

rth*_*sen 7 java swing jpanel miglayout paintcomponent

JPanel添加了一个JViewport,面板上还添加了其他几个面板.我正在尝试实现拖动选择,您可以通过拖动鼠标选择多个组件.我面临的唯一问题是选择矩形被绘制在添加到main的组件后面JPanel.我怎样才能在它们上面画画?

我的结构如下:
JFrame- > ContentPane- > JLayeredPane- > JScrollPane- > JPanel- > JPanel [].

大学作业设计草案:
如您所见,矩形位于其他面板的后面.

大学任务设计草案.

cam*_*ckr 12

这就是我现在正在做的事情(显然在一个更简单的层面上),并且Swing在添加到其上的组件下面绘制矩形.

在这种情况下,您应该覆盖面板的paint()方法而不是paintComponent()方法.然后自定义绘画将在所有子组件被绘制后完成.


The*_*ail 5

使用分层窗格:

http://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html

这允许您创建重叠组件。

使用玻璃窗格来处理拖动绘画,以及可能的事件:

http://docs.oracle.com/javase/tutorial/uiswing/components/rootpane.html#glasspane