如果我想在屏幕上显示椭圆和矩形,我应该使用画布还是JPanel?
有什么区别?我什么时候使用?
答案 0 :(得分:5)
Canvas
是一个AWT对象; JPanel
是一个轻量级Java Swing对象。如果您有Java Swing GUI,我强烈建议您使用JPanel
。
这是JPanel上的一个很好的链接:
在最简单的情况下,您使用
JPanel
的方式与您完全相同 会Panel
。分配它,删除其中的组件,然后添加JPanel
某些Container
。但是,JPanel
也可以替代Canvas
(没有JCanvas
)...
答案 1 :(得分:2)
通常,如果您使用的是Swing,则只应使用Swing组件。在同一GUI中混合使用Swing和AWT组件会导致奇怪的结果。所以我会使用JPanel或原始JComponent。
答案 2 :(得分:1)
如果您想要显示静态图片,例如图标,您可以使用JLabel
。
BufferedImage image=
new BufferedImage(100, 50, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = image.createGraphics();
// draw
g2.draw(new Ellipse2D.Double(x, y, rectwidth,rectheight));
g2.fill (new Ellipse2D.Double(0, 0, 100, 50));
JLabel label = new JLabel(new ImageIcon( image ));
答案 3 :(得分:0)
这取决于你喜欢什么,但是,我会使用JFrame,它直接创建一个窗口,你可以绘制它。 Canvas有它的优点,它让你写一个较少的导入,它也将窗口东西与画布图形东西分开,但它有它无法访问窗口的缺点。这取决于你喜欢和需要的东西。