【问题标题】:How to print in applet outside paint() method如何在小程序外部paint()方法中打印
【发布时间】:2016-06-02 19:40:47
【问题描述】:

我一直在尝试以 paint() 以外的方法使用 Graphics 类的 drawString() 函数进行打印。我已经尝试过这个程序,它可以解决早期的疑问,但是这段代码不起作用。请帮我找出缺陷。谢谢。 如下:

import java.awt.*;
import java.applet.*;

public class PaintIssue extends Applet {

    Graphics gg; //global Graphics object

    @Override
    public void init() {}

    @Override
    public void paint(Graphics g) {
        g.drawString("Output of paint method",20,20);
        myMethod(); //calling myMethod
    }

    public static void myMethod() {
        gg.drawString("Output of myMethod",20,40);
    }
}

【问题讨论】:

  • 1) 为什么要编写小程序?如果是老师指定的,请参考Why CS teachers should stop teaching Java applets。 2) 为什么使用 AWT?请参阅this answer 了解放弃 AWT 使用支持 Swing 的组件的许多充分理由。
  • 嗯,我是applet 的新手,而AWT 是迄今为止我学到的关于图形操作的唯一东西。我已经做了一年了。
  • 您将在 Swing 和桌面应用程序上获得更好的帮助和更好的答案。
  • 我相信我会的。我希望尽快开始使用 Swing。谢谢。 :)

标签: java graphics applet awt paint


【解决方案1】:

AWT 没有“全局图形对象”的概念。您必须传递您的绘制方法接收到的 Graphics 对象。

    @Override
    public void paint(Graphics g) {
        g.drawString("Output of paint method",20,20);
        myMethod(g); //calling myMethod
    }

    public static void myMethod(Graphics g) {
        g.drawString("Output of myMethod",20,40);
    }

【讨论】:

  • 感谢您再次解决我的问题。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 2021-11-04
  • 2013-10-09
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多