난 그냥 자바 시작하고 새로운 GUI에서 일하고 있었어. 내 JFrame을 만드는 메소드를 만들었고 기본 위치, 닫기 연산, 배경색 등을 설정했습니다.공용 메서드에서 시작된 개체를 확인할 수 없습니까?
나는 이것을 정리하기 위해 주 코드에서 벗어나는 별도의 메소드를 만들었습니다. 이 메서드를 해결하는 방법은 이미 알고 있습니다. 모든 메서드를 기본 메서드에 넣으면됩니다.
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);
}
}
나는 "MainWindow를"가 해결 될 수 없다는 내 주요 방법에 오류가 발생합니다 :
이
는 코드입니다. 왜 이런거야? 그것은 다른 방법으로 mainWindow 객체를 만들었 기 때문입니까? main 메서드에 makeWindow() 메서드의 모든 것을 넣지 않고이 문제를 해결할 수있는 방법이 있습니까?
mainWindow는 makeWindow() 메서드에 대해 로컬입니다. 그것은 전부 범위에 관한 것입니다. –
다음은 범위에 대한 외부 가이드입니다. http://www.geeksforgeeks.org/variable-scope-in-java/ – Compass
mainWindow가 로컬이지만 mainWindow가 객체 인 것으로 나타났습니다. 어떻게 인스턴스 객체를 만들 수 있습니까? 이미 각 메소드 외부에서 인스턴스 변수를 선언 할 수 있다는 것을 이미 알고 있지만 객체에 대해 동일한 작업을 수행하려면 어떻게해야합니까? – Psear