Ich beginne gerade mit Java und ich arbeitete an einer neuen GUI. Ich machte eine Methode, die meinen JFrame bildet, seinen Standardstandort, nahen Betrieb, Hintergrundfarbe etc. einstellt.Kann ein Objekt, das in einer öffentlichen Methode initiiert wurde, nicht aufgelöst werden?
Ich machte eine getrennte Methode für dieses, um es aus dem Hauptcode für Ordnung herauszuhalten. Ich weiß bereits, wie ich diese Methode lösen kann, wenn ich all diese Dinge in die Hauptmethode lege.
Dies ist der Code:
public class Main {
public static void makeWindow(){
JFrame mainWindow = new JFrame();
mainWindow.setVisible(true);
mainWindow.setPreferredSize(new Dimension(400,400));
mainWindow.pack();
mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWindow.setLocationRelativeTo(null);
}
public static void main(String args[]){
makeWindow();
JPanel mainPanel = new JPanel();
mainWindow.add(mainPanel);
}
}
ich einen Fehler in meiner Haupt-Methode erhalten, dass „Mainwindow“ kann nicht aufgelöst werden. Warum ist das? liegt es daran, dass ich das mainWindow-Objekt in der anderen Methode erstellt habe? Gibt es eine Möglichkeit, dieses Problem zu beheben, ohne alles von der makeWindow() - Methode in die Hauptmethode zu übernehmen?
mainWindow ist lokal für die Methode makeWindow(). Es geht nur um den Umfang. –
Hier ist eine externe Anleitung für den Bereich: http://www.geeksforgeeks.org/variable-scope-in-java/ – Compass
Ich bemerkte, dass mainWindow lokal war, aber mainWindow ist ein Objekt, wie kann ich ein Instanzobjekt erstellen? Ich weiß bereits, dass ich Instanzvariablen außerhalb ihrer jeweiligen Methoden deklarieren kann, aber wie kann ich das gleiche für ein Objekt tun? – Psear