Eh bien, il y a deux problèmes ici 1:
Graphics g1;
a.paint(g1);
Et vous obtenez l'erreur G1 est pas initialisé. En effet, la variable g1 n'est jamais définie sur rien, ce qui provoque une erreur de compilation. Pour obtenir le code à compiler, vous devez, à tout le moins faire:
Graphics g1 = null;
a.paint(g1);
Cependant, que de toute évidence ne vous aidera pas trop. Vous obtiendrez une exception NullPointerException lorsque vous essayez d'exécuter votre code. Pour réellement faire vos graphiques pour vous tirer besoin de ceci:
anim1 a=new anim1();
Graphics g1 = anim1.getGraphics();
a.paint(g1);
Toutefois, cela ne fonctionne toujours pas parce que anim1 n'apparaîtra à l'écran. Pour qu'il apparaisse à l'écran dont vous avez besoin quelque chose comme:
import java.awt.*;
import javax.swing.*;
import java.applet.*;
public class So1 extends Applet{
public void paint (Graphics g)
{
g.drawString("hello",40,30);
}
public static void main(String ad[])
{
JFrame jp1 = new JFrame();
So1 a=new So1();
jp1.getContentPane().add(a, BorderLayout.CENTER);
jp1.setSize(new Dimension(500,500));
jp1.setVisible(true);
}
}
remarque maintenant, nous n'appelons en fait la peinture() nous fonctionner. Cela est géré par l'awt, qui choisit le contexte graphique, et appelle notre fonction de peinture pour nous. Si vous voulez, cependant, vous pouvez passer dans n'importe quel objet graphique que vous voulez et lui demander de s'appuyer sur cela.(Donc si vous voulez attirer votre composant sur une image, vous pouvez le faire)
(note, je change le nom de classe de anim1 OS1)
Pour que l'affichage soit actualisé, vous devez appeler la méthode repaint() sur une instance de votre objet anim1. – klyngbaek