non-static variable this cannot be referenced from a static context
1 réponse
bartoli.nicolas
Bonsoir à tous,
mon probleme est le suivant :
Affichage.java [37:1] non-static variable this cannot be referenced
from a static context
JFrame frame1 = new Bunch();
^
1 error
Errors compiling Affichage.
//Gestion d'affichage des allumettes du jeu
public Affichage() {
//Titre de la fenetre
super("Allumettes");
//Définition de la position de la fenetre
setLocation(300, 200);
//Définition de la taille de la fenetre
setSize(830, 490);
//Gestion de sortie
ExitWindow exit = new ExitWindow();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Constructeur
MapPane map = new MapPane();
getContentPane().add(map);
addWindowListener(exit);
}
//Classe principale
public static void main(String[] arguments) {
//Utilisation de l'interface du systeme qui execute le code
(ici win2K)
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
System.err.println("impossible d'appliquer l'apparence
systeme : " +e);
}
//Affichage de allumettes
Affichage frame = new Affichage();
frame.show();
//Affichage de la console
JFrame frame1 = new Bunch();
//Afficher frame1
frame1.show();
}
//Gestion d'affichage du menu de controle des allumettes
public class Bunch extends JFrame implements ActionListener {
//Creation des 3 bouttons
JButton une = new JButton(" | ");
JButton deux = new JButton(" | | ");
JButton trois = new JButton(" | | | ");
public Bunch() {
//Intitulé de la fenetre
super("Choix du nombres d'allumettes à retirer");
//Définition Taille de la fenetre
setSize(260, 260);
//Définition de la positions de la fenetre
setLocation(10, 20);
//Ajout des écouteurs d'action aux 3 objets JButton
une.addActionListener(this);
deux.addActionListener(this);
trois.addActionListener(this);
//Constructeur
JPanel pane = new JPanel();
//Creation du layout
GridLayout family = new GridLayout(3, 3, 10, 10);
//Répartition des 3 bouttons dans la fenetre
pane.setLayout(family);
//Ajout des bouttons
pane.add(une);
pane.add(deux);
pane.add(trois);
//Affichage
setContentPane(pane);
//Gestion de sortie
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//actions
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == une)
setTitle("Une");
else if (source == deux)
setTitle("deux");
else if (source == trois)
setTitle("Trois");
repaint();
}
}
class MapPane extends JPanel {
public void paintComponent(Graphics comp) {
Graphics2D comp2D = (Graphics2D)comp;
Color black = new Color(0, 0, 0);
int x=30;
int y=30;
for (int i=0; i<10 ; i++)
{
comp2D.setColor(black);
comp2D.fillRect(x,y, 50, 400);
x=x+80;
}
}
}
//Class gestion de sortie
class ExitWindow extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas CUVELIER
Nico82 wrote:
Bonsoir à tous, mon probleme est le suivant :
Affichage.java [37:1] non-static variable this cannot be referenced from a static context JFrame frame1 = new Bunch(); ^ 1 error Errors compiling Affichage.
Je ne vois pas comment le résoudre.
Ton problème est le suivant : ta classe Bunch est interne à ta classe Affichage. Deux solutions : 1/ si la classe DOIT être interne, l'instanciation de ton objet doit se faire ainsi :
2/ sinon, tu peux sortir la classe Bunch de la classe Affichage, soit en la mettant dans un fichier à part, soit en la déplaçant à la fin de ton fichier (sans oublier d'enlever le "public" de la classe).
Bonne chance !
-- El Bucheron ( @ @ ) ____________________________________oOOo-( )-oOOo________
Nico82 wrote:
Bonsoir à tous,
mon probleme est le suivant :
Affichage.java [37:1] non-static variable this cannot be referenced
from a static context
JFrame frame1 = new Bunch();
^
1 error
Errors compiling Affichage.
Je ne vois pas comment le résoudre.
Ton problème est le suivant :
ta classe Bunch est interne à ta classe Affichage.
Deux solutions :
1/ si la classe DOIT être interne, l'instanciation de ton objet doit se
faire ainsi :
2/ sinon, tu peux sortir la classe Bunch de la classe Affichage, soit en la
mettant dans un fichier à part, soit en la déplaçant à la fin de ton
fichier (sans oublier d'enlever le "public" de la classe).
Bonne chance !
--
El Bucheron ( @ @ )
____________________________________oOOo-( )-oOOo________
Affichage.java [37:1] non-static variable this cannot be referenced from a static context JFrame frame1 = new Bunch(); ^ 1 error Errors compiling Affichage.
Je ne vois pas comment le résoudre.
Ton problème est le suivant : ta classe Bunch est interne à ta classe Affichage. Deux solutions : 1/ si la classe DOIT être interne, l'instanciation de ton objet doit se faire ainsi :
2/ sinon, tu peux sortir la classe Bunch de la classe Affichage, soit en la mettant dans un fichier à part, soit en la déplaçant à la fin de ton fichier (sans oublier d'enlever le "public" de la classe).
Bonne chance !
-- El Bucheron ( @ @ ) ____________________________________oOOo-( )-oOOo________