Notice
Recent Posts
Recent Comments
Link
투케이2K
195. (java/자바) GUI (awt/swing) - 사칙 연산 계산기 프로그램 만들기 본문
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : 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문 : 동적으로 배열에 포함된 값을 사용해 버튼을 생성합니다
/* =========================== */
/* =========================== */
[전체 소스코드 파일 첨부]
/* =========================== */
반응형
'Java' 카테고리의 다른 글
Comments