0

在 JFrame 中,我想在画布上绘制画布,并且根据需要,我想保持 canvas1 集可见或 canvas2 集可见。我可以这样做吗?

4

3 回答 3

4

不要将 Swing (JFrame) 与 AWT (Canvas) 组件混合使用,除非您有令人信服的理由这样做,否则您只会遇到异常难以调试的麻烦。而是在其paintComponent 方法中绘制JPanel,如本网站多次描述的那样,并通过CardLayout交换JPanel 。此外,它是“Java Swing”,而不是“Java Swing”。

于 2012-07-13T01:48:19.533 回答
2

OverlayLayout,显示在这里,可能会满足您的需求。

于 2012-07-13T03:16:07.480 回答
0

由于 Canvas 只是 Component 的子类(有时是 JPanel 的子类),因此您可以简单地创建两个具有绝对定位的画布框,其中一个较大且位于另一个后面。您可以使用 .setVisibile(Boolean) 来显示/隐藏两者中的任何一个。

请参阅此链接以了解 Java 绝对布局 http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html

于 2012-07-13T01:43:51.707 回答