【问题标题】:Drawing a graph with Graphics2D using WindowBuilder使用 WindowBuilder 使用 Graphics2D 绘制图形
【发布时间】:2014-04-23 09:32:37
【问题描述】:

所以我有一个名为 displayPane 的 JPanel,我想让它成为一个图形的绘图区域(我正在制作一个图形计算器)。我正在使用 WindowBuilder,这是为 JPanel 生成的代码:

JPanel displayPane = new JPanel();
displayPane.setBackground(Color.WHITE);
displayPane.setBounds(173, 33, 455, 432);
frame.getContentPane().add(displayPane);

之后我想画图的轴,但我不知道怎么画。 我到处搜索过它,但是每个人都在主类中构造了一个成员类或其他东西,并添加了paintComponent(Graphics g),但这让我感到困惑。那是为了什么?或者只是给我你的方式,只要我理解它,我并不在乎。 任何帮助表示赞赏:)

【问题讨论】:

  • 我想你来这里可能有点过早。你会想从这里开始:Performing Custom Painting With Swing,然后尝试一些事情。
  • 好吧,我实际上是在探索 WindowBuilder,它看起来很简单,但看起来你实际上必须自己编写一些代码,哈哈
  • 是的,Windows Builders 可以保护您免受代码创建的影响,但这是有代价的——您不会学习如何创建代码。现在是时候卷起袖子开始实际编码了。这将需要努力、阅读教程和试验。祝你好运。
  • 你有什么建议我应该从 Java GUI 开始?
  • Mad 和我都给了你一些链接。 1+ 到 Mad 顺便说一句。

标签: java swing jpanel graphics2d windowbuilder


【解决方案1】:

由于这是作业,我将为您提供不带代码的一般指导,但首先,请阅读this link 以了解如何使用 Swing 进行自定义绘画。接下来,您应该将 Window Builder 软件放在一边,并从头开始创建自己的代码,至少要这样做,直到您熟悉 Swing 编码为止。

接下来的建议:

  • 让您的 DrawingPanel 扩展 JPanel
  • 覆盖paintComponent(Graphics g)
  • 在您的覆盖中调用 super 的方法 super.paintComponent(g),因为这将刷新图形并擦除旧的“脏”像素。
  • 使用 g.drawLine(...)` 玩画线
  • 继续这样做,您就会明白自己需要什么。

【讨论】:

  • 这不是家庭作业,只是我为了好玩而开始的一个项目,不过感谢您的回答:)
  • @ArnZXY:它仍然是家庭作业——你在家里做的一个程序。不介意它是否是一项任务。目标是了解哪些只能通过编码来实现。
【解决方案2】:

自定义绘画是通过覆盖基于JComponent 的类(如JPanel)的paintComponent 方法来实现的。

这使您可以访问绘制内容并最终显示在屏幕上的绘图表面

请参阅Custom paintingPainting in AWT and Swing 了解更多详情。

Graphics API(或更具体地说,Graphics2D API)是一个强大的抽象工具包,它提供了在屏幕上实际绘制内容的方法。

在基本级别,这为您提供了指定颜色和绘制基本形状和文本的能力。在更复杂的层面上,您可以定义自己的形状,执行更复杂的着色效果,包括渐变填充和基本上下文的转换

有关详细信息,请参阅2D Graphics Trail

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2013-04-29
    • 2018-12-16
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多