프로그램 종료를 위해 간혹 사용되는 방법 중 하나가 윈도우 이벤트를 기반으로 windowClosing 메소드 내에 다음 문장을 삽입하는 것이다. 

 

System.exit(0)
그런데 이 방법은 하나의 창에 있는 X 버튼만 눌러도 프로그램 전체가 종료되고만다. 즉 X 버튼이 눌리지 않는 GUI창도 함께 소멸되는 것이다. 프로그램 종료를 위해, 윈도우 이벤트 처리를 직접 하지 않고 JFrame에 정의되어 있는 다음 메소드를 호출하는 방법도 있다.

public void setDefaultCloseOperation(int operation)

이 메소드는 X 버튼이 눌렸을 떄의 실행 방식을 결정짓는 메소드이다. 이 메소드의 인자로 전달될 수 있는 값의 종류는 총 네가지인데, 이중에서 두가지 정도만 소개한다. 


* WindowConstants.DISPOSE_ON_CLOSE dispose 메소드 호출과 동일한 효과

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

class JFrameWindowClosingEventHandler extends WindowAdapter {
	public void windowClosing(WindowEvent e) {
		JFrame frame = (JFrame)e.getWindow();
		frame.dispose();
		System.out.println("windowClosing()");
	}
}

class JFrameWindow extends JFrame {
	JFrameWindow(String title) {
		super(title);
		this.setSize(300, 200);
		this.setVisible(true);
		this.addWindowListener(new JFrameWindowClosingEventHandler());
	}
}

public class JFrameWindowEventTest {
	public static void main(String[] args) {
		JFrameWindow frameWindow = new JFrameWindow("Window");
	}
}

* JFrame.EXIT_ON_CLOSE System.exit 메소드 호출과 동일한 효과

addWindowListener {
    new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }
}


블로그 이미지

행복그리고..

,
public class PropertyTest {
	public static void main(String[] args) {
		System.out.println("Java 버전 : " + System.getProperty("java.version"));
		System.out.println("Java 공급자 : " + System.getProperty("java.vendor"));
		System.out.println("Java 공급자 주소 : " + System.getProperty("java.vendor.url"));
		System.out.println("Java 설치 디렉토리 : " + System.getProperty("java.home"));
		System.out.println("Java 클래스 버전 : " + System.getProperty("java.class.version"));
		System.out.println("Java 클래스 경로 : " + System.getProperty("java.class.path"));
		System.out.println("확장기능의 클래스 경로 : " + System.getProperty("java.ext.dir"));
		System.out.println("운영체제 이름 : " + System.getProperty("os.name"));
		System.out.println("운영체제 아키텍쳐 : " + System.getProperty("os.arch"));
		System.out.println("운영체제 버전 정보 : " + System.getProperty("os.version"));
		System.out.println("파일 구분 문자 : " + System.getProperty("file.separator"));
		System.out.println("경로 구분 문자 : " + System.getProperty("path.separator"));
		System.out.println("행 구분 문자 : " + System.getProperty("line.separator"));
		System.out.println("사용자 계정 : " + System.getProperty("user.name"));
		System.out.println("사용자 홈 디렉토리 : " + System.getProperty("user.home"));
		System.out.println("현재 디렉토리 : " + System.getProperty("user.dir"));
	}
}

블로그 이미지

행복그리고..

,
public static String[] getLocalFontNameList() {
    return GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
}
블로그 이미지

행복그리고..

,