Comment ajouter une classe qui étend la classe Composite à JFrame?

Pour ma mission, je me suis donné à ce morceau de code:

//This class/method uses a  global variable that MUST be set before calling/using
//note: You can not call the paint routine directly, it is called when frame/window is shown
//look up the repaint() routine in the book
//Review Listings 8.5 and 8.6
//
public static class MyPanel extends JPanel {
 public void paintComponent (Graphics g) {
    int xpos,ypos;
    super.paintComponent(g);
    //set the xpos and ypos before you display the image
    xpos = 10; //you pick the position
    ypos = 10; //you pick the position
    if (theimage != null) {
        g.drawImage(theimage,xpos,ypos,this);
        //note: theimage global variable must be set BEFORE paint is called
    }
 }
}

Mon professeur dit aussi: Vous aurez aussi besoin de chercher comment créer ET ajouter un JPanel à un JFrame. Si vous pouvez créer ET ajouter un JPanel, puis tout ce que vous devez faire est de remplacer ' MyPanel "pour le nom de la classe' JPanel " et ce code permet d'afficher une image sur le châssis de la fenêtre.

Que veut-il dire par "puis tout ce que vous devez faire est de remplacer 'MyPanel" pour le nom de la classe 'Composite', et ce code permet d'afficher une image sur le châssis de la fenêtre"? Je suis confus d'où je suis censé remplacer MyPanel. Voici mon code:

public static class MyPanel extends JPanel {
 public void paintComponent (Graphics g) {
    int xpos,ypos;
    super.paintComponent(g);
    JPanel panel= new JPanel();
    JFrame frame= new JFrame();
    frame.setSize(500,400);
    frame.add(panel);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //set the xpos and ypos before you display the image
    xpos = 600; //you pick the position
    ypos = 600; //you pick the position
    if (theimage != null) {
        g.drawImage(theimage,xpos,ypos,this);
        //note: theimage global variable must be set BEFORE paint is called
    }
 }
}
Vous devez avoir précédentes listes de code à l'aide de JPanel que le conteneur primaire. Votre professeur vous propose de prendre ces inscription (8.5 & 8.6) et d'essayer de les faire utiliser MyPanel au lieu
paintComponent est protégé, non public
Cette exemple peut-être d'intérêt pour vous 🙂
La création d'une nouvelle instance d'un cadre ou d'un panneau est pas quelque chose qui devrait être fait à l'intérieur, ou appelé à partir, le paintComponent() méthode!
Ni de la publication des codes de la compilation, depuis theimage n'est pas déclaré.

OriginalL'auteur stepup.stepout | 2012-10-16