Je cherche à faire fonctionner la méthode showGUI(), le compilateur dit que "this" n'est pas une variable statique et ne peut pas être référencé à partir d'un contexte statique, aurais-je l'habitude de remplacer "ceci"? J'ai essayé test.main (test étant le paquet dans lequel il est). La raison pour laquelle j'utilise la méthode statique showGUI() est que j'ai besoin que la méthode soit appelée à partir d'une autre méthode statique, ainsi que de la méthode startup(). Voici mes deux classes principales.Comment remplacer "this" dans Java par quelque chose qui fonctionne
public class Main extends SingleFrameApplication {
@Override protected void startup() {
showGUI();
}
@Override protected void configureWindow(java.awt.Window root) {
}
public static Main getApplication() {
return Application.getInstance(Main.class);
}
public static void main(String[] args) {
launch(Main.class, args);
}
public static void showGUI() {
show(new GUI(this));
}
}
public class GUI extends FrameView {
public GUI(SingleFrameApplication app) {
super(app);
initComponents();
}
private void initComponents() {
//all the GUI stuff is somehow defined here
}
}
puis ma méthode de plateau qui est statique ne peut pas l'utiliser –
showGUI() est appelée par startup(), qui n'est pas statique. Vous ne montrez aucun exemple de code où vous l'appelez à partir d'un contexte statique. Vous devez nous dire ce que vous essayez de faire. Comme d'autres l'ont mentionné, vous pouvez créer une nouvelle instance en utilisant 'new Main()', même si avoir un appel de fonction 'showGUI' instancie réellement un nouvel objet Main peut être trompeur. – EboMike