투케이2K

195. (java/자바) GUI (awt/swing) - 사칙 연산 계산기 프로그램 만들기 본문

Java

195. (java/자바) GUI (awt/swing) - 사칙 연산 계산기 프로그램 만들기

투케이2K 2021. 4. 7. 13:10
반응형

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Eclipse

개발 언어 : Java

/* =========================== */

/* =========================== */

[소스 코드]

 

//TODO 메인 메소드 시작 부분
public static void main(String[] args) {
	// TODO Auto-generated method stub
	System.out.println("[GUI (awt/swing) - 사칙 연산 계산기 프로그램 만들기]");
		
	/*[설 명]
	 * 1. 자바에서는 JFrame을 사용해서 GUI 프로그램을 만들 수 있습니다
	 * 2. new GridLayout(행, 열, 가로여백, 세로여백) 표시 - 테이블 모양 형식 
	 * 3. ActionListener : 클릭 이벤트 정의 실시
	 * 4. for문 : 동적으로 배열에 포함된 값을 사용해 버튼을 생성합니다		 
	 * */
		
	//TODO 클릭 이벤트를 정의하기 위해 액티비티 객체 생성
	mainActivity = new MainActivity13();		
		
	//TODO 부모 프레임 생성
	JFrame frm = new JFrame("계산기 프로그램");
 
	//TODO 부모 프레임 크기 설정 (가로, 세로)
	frm.setSize(500, 500);
 
	//TODO 부모 프레임을 화면 가운데에 배치
	frm.setLocationRelativeTo(null);
 
	//TODO 부모 프레임을 닫았을 때 메모리에서 제거되도록 설정
	frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	//TODO 부모 프레임 창 크기 고정 실시
	frm.setResizable(false);
 
	//TODO 부모 레이아웃 설정
	frm.getContentPane().setLayout(null);
		
	//TODO 자식 레이아웃 [텍스트] 생성
	calc_txt = new JLabel("0");
	calc_txt.setBounds(0, 0, 500, 100); //TODO setBounds(가로위치, 세로위치, 가로길이, 세로길이);
	calc_txt.setOpaque(true); //TODO setBackground 적용하기 위한 선행 설정
	calc_txt.setBackground(Color.GRAY); //TODO 백그라운드 색상 정의
	calc_txt.setForeground(Color.WHITE); //TODO 텍스트 색상 정의
	calc_txt.setFont(new Font("맑은 고딕", 0, 20)); //TODO 폰트 정의
	calc_txt.setHorizontalAlignment(JLabel.CENTER); //TODO 텍스트 센터 표시 설정
		
	//TODO 자식 레이아웃 [텍스트] 생성
	result_txt = new JLabel("result");
	result_txt.setBounds(0, 100, 500, 50); //TODO setBounds(가로위치, 세로위치, 가로길이, 세로길이);
	result_txt.setOpaque(true); //TODO setBackground 적용하기 위한 선행 설정
	result_txt.setBackground(Color.darkGray); //TODO 백그라운드 색상 정의
	result_txt.setForeground(Color.WHITE); //TODO 텍스트 색상 정의
	result_txt.setFont(new Font("맑은 고딕", 0, 20)); //TODO 폰트 정의
	result_txt.setHorizontalAlignment(JLabel.CENTER); //TODO 텍스트 센터 표시 설정
		
	//TODO 자식 레이아웃 [버튼] 생성
	JPanel grid_panel = new JPanel();
	grid_panel.setLayout(new GridLayout(4, 4, 0, 0)); //테이블 형식 - 행, 열, 가로 여백, 세로 여백
						
	for(int idx=0; idx<arr.length; idx++) {
		btn[idx] = new JButton(arr[idx]);
		btn[idx].setFont(new Font("맑은 고딕", 0, 20)); //TODO 폰트 정의
		if(arr[idx].contains("*") || arr[idx].contains("/") || 
				arr[idx].contains("+") || arr[idx].contains("-")) {
			btn[idx].setBackground(Color.BLACK); //TODO 백그라운드 색상 정의
		}
		else if(arr[idx].contains("CE") || arr[idx].contains("=")) {
			btn[idx].setBackground(Color.darkGray); //TODO 백그라운드 색상 정의
		}
		else {
			btn[idx].setBackground(Color.GRAY); //TODO 백그라운드 색상 정의	
		}			
		btn[idx].setForeground(Color.WHITE); //TODO 텍스트 색상 정의
		btn[idx].addActionListener(mainActivity); //TODO 클릭 이벤트 추가
			
		grid_panel.add(btn[idx]); //TODO JPanel에 버튼 추가
		
	}
	grid_panel.setBounds(0, 150, 500, 320); //TODO setBounds(가로위치, 세로위치, 가로길이, 세로길이);
		 
	//TODO 부모 프레임에다가 자식 컴포넌트 추가
	frm.getContentPane().add(calc_txt);
	frm.getContentPane().add(result_txt);
	frm.getContentPane().add(grid_panel);
		
	//TODO 부모 프레임이 보이도록 설정
	frm.setVisible(true);
		
}//메인 종료

/* =========================== */

[결과 출력]

/* =========================== */

/* =========================== */

[요약 설명]

* 1. 자바에서는 JFrame을 사용해서 GUI 프로그램을 만들 수 있습니다

* 2. new GridLayout(행, 열, 가로여백, 세로여백) 표시 - 테이블 모양 형식

* 3. ActionListener : 클릭 이벤트 정의 실시

* 4. for문 : 동적으로 배열에 포함된 값을 사용해 버튼을 생성합니다

/* =========================== */

/* =========================== */

[전체 소스코드 파일 첨부]

소스코드.txt
0.01MB

/* =========================== */

반응형
Comments