尝试从paint()以外的方法打印文本

时间:2016-01-21 12:48:46

标签: java graphics applet

我创建了一个applet,其中我定义了一个方法,除了覆盖 paint()方法,该方法使用 Graphics.drawString()方法在画布上显示文本。我遇到的问题是我无法调用该方法。这是因为该方法将Graphics类对象作为参数,并且在调用该函数时我无法将Graphics类对象作为参数传递。 (在某种情况下调用callerMethod()。)请参阅下面的代码并提供帮助。感谢。

import java.applet.*;
import java.awt.*;
public class MyApplet extends Applet {

    @Override
    public void init() {}

    public void callerMethod() {

        /*HERE I WANT TO CALL myPrintMethod()*/
        myPrintMethod(GRAPHICS OBJECT);
    }

    public static void myPrintMethod(Graphics g) {
        g.drawString("In method myPrintMethod",20,40);
    }

    @Override
    public void paint(Graphics g) {
        g.drawString("In method paint",20,20);
    }
}

2 个答案:

答案 0 :(得分:0)

paint(.)

但应在Graphics2D之后调用此 Graphics2D g2d = (Grapics2D) g;

使用提供更多高级功能的DECLARE @table_name SYSNAME, @sql VARCHAR(2000) DECLARE tables CURSOR FOR SELECT DISTINCT t.name AS table_name FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID WHERE t.name LIKE '%temp_table_%' AND c.name = 'Manager' OPEN tables FETCH NEXT FROM tables INTO @table_name WHILE (@@FETCH_STATUS = 0) BEGIN SET @sql = 'IF EXISTS (SELECT * FROM ' + @table_name + ' WHERE [Manager] IS NULL) RAISERROR(''' + @table_name + ''',0,1) WITH NOWAIT' EXECUTE(@sql) FETCH NEXT FROM tables INTO @table_name END CLOSE tables DEALLOCATE tables

{{1}}

答案 1 :(得分:0)

应该调用 myPrintMethod(),并将Graphics对象作为实际参数传递。 paint方法的Graphics对象 g 可以在调用时传递给myPrintMethod。

public static void myPrintMethod(Graphics g){
    g.drawString("myPrintMethod",20,40); 
}
public void paint(Graphics g){
    g.drawString("Paint method",20,20);
    myPrintMethod(g);
}    

这将给出输出:

Paint method

myPrintMethod
相关问题