3

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

有什么不同?我什么时候使用每个?

4

4 回答 4

5

Canvas是一个 AWT 对象;JPanel是一个轻量级的 Java Swing 对象。如果您有 Java Swing GUI,我强烈建议您使用JPanel.

这是JPanel上的一个很好的链接:

在最简单的情况下,您使用 a的方式与使用 aJPanel的方式完全相同Panel。分配它,将组件放入其中,然后将其添加JPanel 到一些Container. 但是,JPanel也可以替代 Canvas(没有JCanvas)...

于 2012-04-30T18:34:05.127 回答
3

一般来说,如果你使用 Swing,你应该只使用 Swing 组件。在同一个 GUI 中混合 Swing 和 AWT 组件会导致奇怪的结果。所以我会使用 JPanel 或原始 JComponent。

于 2012-04-30T18:33:00.403 回答
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 ));
于 2012-04-30T18:35:57.477 回答
0

这取决于你喜欢什么,但是,我会使用 JFrame,它直接创建一个窗口,你可以在上面绘图。Canvas 有它的优点,它可以让你少写一个 import,它还可以将 window 的东西与 canvas 的图形的东西分开,但它也有它的缺点,那就是无法访问 window。这取决于你喜欢什么和需要什么。

于 2017-08-20T02:49:38.790 回答