画布与面板

时间:2012-04-30 18:28:19

标签: java canvas jpanel

如果我想在屏幕上显示椭圆和矩形,我应该使用画布还是JPanel?

有什么区别?我什么时候使用?

4 个答案:

答案 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有它的优点,它让你写一个较少的导入,它也将窗口东西与画布图形东西分开,但它有它无法访问窗口的缺点。这取决于你喜欢和需要的东西。