在Swing中操纵JPanel

时间:2012-08-30 14:50:32

标签: java swing graph jpanel

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

如何将JPanel显示在另一个上,或控制外观的顺序?

1 个答案:

答案 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!