我正在开发一个将XML文件转换为动态图形的应用程序,所以我创建了一个扩展JPanel的类来安排节点(circularnode.java),并创建了一个扩展JPanel以添加箭头的类(arrow.java)但是当显示箭头时,它们总是落在节点后面。 circularnode.java的背景隐藏了它们。
如何将JPanel显示在另一个上,或控制外观的顺序?
答案 0 :(得分:4)
考虑从JPanel中提取直接绘制箭头和节点的代码。也许您可以创建一个知道如何绘制自己的Arrow和Node类,例如具有public void paint(Graphics g)
方法。
然后,您可以为JPanel类创建ArrayList<Arrow>
和ArrayList<Node>
字段,并通过迭代列表并调用每个项目的{{1}来在JPanel的paintComponent(...)
方法中绘制两者传递从JVM获得的Graphics上下文的方法。
否则,如果您绝对需要在单独的JPanel中绘制这些,一个在另一个上面,请确保顶部JPanel不是通过paint(...)
不透明,因此它的背景不会被绘制,并且你可以看透它。
要获得更具体的帮助,请考虑告诉我们有关您的问题,当前代码,甚至发布部分代码的更多信息,最好以SSCCE的形式(请参阅描述此的链接)非常有用的构造。)
顺便欢迎访问stackoverflow.com!