2016-02-21 4 views
1

Я пытался напечатать с помощью функции шнурка() из Graphics класса в методе, кроме краски(). Я пробовал эту программу, которая была решением более ранних сомнений, но этот код не работает. Пожалуйста, найдите недостатки. Благодарю. Вот это ниже:Как напечатать в методе апплета вне краски()

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); 
    } 
} 
+0

1) Зачем нужен апплет? Если это связано с тем, что учитель указал на это, обратитесь к [Почему учителя CS должны ** останавливаться ** преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-учебно-ява-апплеты /). 2) Зачем использовать AWT? См. [Этот ответ] (http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978) по многим причинам, чтобы отказаться от использования AWT с использованием компонентов в пользу Swing. –

+0

Ну, я новичок в апплетах, и AWT - единственное, что я узнал до сих пор относительно манипуляции с графикой. Я делаю их уже год. –

+0

Вы получите лучшую помощь и лучшие ответы, на 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); 
    } 
+0

Спасибо за решение моей проблемы еще раз. :) –