如何在小程序外部paint()方法中打印

Posted

技术标签:

【中文标题】如何在小程序外部paint()方法中打印【英文标题】:How to print in applet outside paint() method 【发布时间】: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。谢谢。 :) 【参考方案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);
    

【讨论】:

感谢您再次解决我的问题。 :)

以上是关于如何在小程序外部paint()方法中打印的主要内容,如果未能解决你的问题,请参考以下文章

当用户更改小程序窗口大小时,真正发生了啥?

Paint文字相关

如何在小程序中使用less

如何在小程序中使用less

在小程序里添加跳转外部链接web-view(使用的是uni-app)

在小程序的其他JS文件中均可以使用全局的啥方法获取小程序实例