【问题标题】:Use a Graphics2D extended class to draw on JPanel使用 Graphics2D 扩展类在 JPanel 上绘图
【发布时间】:2018-02-25 11:27:33
【问题描述】:

我的问题是,是否有办法使用我自己的从Graphics2D 扩展的类来绘制JPanel

我试过了,但是因为面板的paint方法给了我一个Graphics2D对象。我不能把它投射到我的Graphics 班级。我想在那个扩展类中编写我自己的图形方法来绘制不同的东西,并将所有方法放在一个有序的地方使用它。例如,Graphics2D.fillRect() 方法。

有什么方法可以做我想做的事吗?

【问题讨论】:

  • 当然可以,但是为什么不能用drawPolygon方法代替呢?
  • 好吧,它不仅形状像一个带框架的矩形,而且我想把所有这些都放在一个地方
  • 好的,您仍然可以使用drawPolygon 进行操作。您只需绘制多个多边形即可获得结果。
  • @BackSlash 是的,因为我可以,但这不是我想要的:D 我想将我所有的绘图 mwthods 存储在 Graphics2DX 中,这是一个扩展 Graphics2D 以像 drawRect 方法或 drawPolygon 一样使用它的类方法。只需使用 Jpanels 绘制方法中的 Graphic 实例即可。
  • 你不能。 Swing 适用于 GraphicsGraphics2D 对象,因此您必须坚持使用它们。您将无法将 paintComponent 中的 Graphics 转换为 Graphics2DX

标签: java swing graphics2d extends


【解决方案1】:

我不建议在类中扩展 Graphics2D。
我建议你做的是 public void paintComponent(Graphics g) 然后在里面调用 Graphics2D:

Graphics2D g2d = (Graphics2D) g;

您可以将 g 重命名为您想要的任何名称。
这是使用我的“g”​​变量的示例:

Graphics2D g2d = (Graphics2D) g;
g.fillRect(0, 0, 100, 100);

查看所有的 cmets,我找不到一个真正回答问题的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多