1

我正在开发一个将 XML 文件转换为动态图的应用程序,因此我创建了一个扩展 JPanel 以排列节点的类(circarnode.java),并创建了一个扩展 JPanel 以添加箭头的类(arrow.java),但在显示时箭头,它们总是在节点后面。circlenode.java 的背景隐藏了它们。

如何在另一个 JPanel 上显示 JPanel,或控制出现的顺序?

4

1 回答 1

4

考虑从 JPanel 中提取用于直接绘制箭头和节点的代码。也许您可以创建一个知道如何绘制自己的 Arrow 和 Node 类,例如具有public void paint(Graphics g)方法的类。

然后,您可以为您的 JPanel 类创建一个ArrayList<Arrow>和字段,并通过遍历 List 并调用从 JVM 获得的 Graphics 上下文中传递的每个项目的方法,ArrayList<Node>在 JPanel 的方法中绘制两者。paintComponent(...)paint(...)

否则,如果您绝对需要在单独的 JPanel 中绘制这些,一个在另一个之上,请确保顶部的 JPanel 不是不透明的 via setOpaque(false),这样它的背景就不会被绘制,并且您可以看穿它。

如需更具体的帮助,请考虑告诉我们更多关于您的问题、您当前的代码,甚至发布您的一些代码,最好以SSCCE的形式(请参阅描述这个非常有用的结构的链接)。

顺便说一句,欢迎来到 stackoverflow.com!

于 2012-08-30T14:54:30.463 回答