【问题标题】:Java, Drawing on an JPanel with colorsJava,在带有颜色的 JPanel 上绘图
【发布时间】:2015-07-27 00:54:47
【问题描述】:

我编写了一个程序,您可以在其中插入坐标和正方形的大小并将其绘制在JPanel 上。我用过:

panel.getGraphics().drawRect(x,y,h,b);

现在我想添加一个这样的颜色选择器:

color Farbe = JColorChooser.showDialog(null, "Color-Chooser", null);

那么现在我如何用颜色绘制正方形?我试过了,但它不起作用:

panel.getGraphics().drawRect(x,y,h,b, Farbe);

【问题讨论】:

  • 错误 #1 - 没有在问题中格式化您的代码;错误 #2 - panel.getGraphics()

标签: java user-interface jpanel drawing2d


【解决方案1】:

panel.getGraphics() 不是自定义绘画的执行方式。

请参阅Painting in AWT and SwingPerforming Custom Painting 了解更多详情

首先创建一个从JPanel 扩展的自定义组件,覆盖它的paintComponent 方法(并确保在进行任何自定义绘制之前调用super.paintComponent)。

在其中放置“绘制”逻辑。这个面板应该提供一个setter和getter,允许外部类改变被绘制矩形的颜色,这样,当paintComponent被调用时,你可以相应地改变Graphics上下文的颜色。

另外,请查看2D Graphics,了解有关如何完成绘画的更多详细信息

更改颜色时不要忘记致电repaint,以鼓励重新绘制面板

【讨论】:

  • 虽然我同意这个答案,但它并没有真正回答这个问题。请补充说drawRect 没有颜色参数,OP 需要调用setColor
  • @11684 drawRectGraphics 对象的一个​​方法,通过它你也可以改变颜色
  • 通过drawRect()改变颜色?!让我再检查一下文档。
  • @11684 不是通过java.awt.Graphics,你需要使用它的一种方法来改变颜色,然后再画
  • 对不起,我不明白你最后的评论。我检查了文档:据我所知,这里没有 Color 参数:docs.oracle.com/javase/8/docs/api/java/awt/…。另外,我没有看到任何重载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-21
  • 2018-09-24
  • 2018-10-26
  • 1970-01-01
  • 2019-01-09
  • 2019-03-07
  • 2018-05-23
相关资源
最近更新 更多