728x90
시험 끝나고 친구들이 계산기 프로그램을 만들기 시작했다고해서 나도 심심해서 만들기 시작했는데 UI 구현을 이미지로만 해봤어서 이미지로 UI구현해보았다.
코드
package Calculator_Program;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import Calculator_Program.Server;
public class Program extends JFrame {
// 계산 버튼
static JButton Plus = new JButton(); // 더하기
static JButton Minus = new JButton(); // 빼기
static JButton Multiply = new JButton();// 곱하기
static JButton Devide = new JButton(); // 나누기
static JButton Percent = new JButton(); // 퍼센트 (0.01 곱함)
static JButton Total = new JButton(); // 합계
static JButton Delete = new JButton(); // 지우기
static JButton Reset = new JButton(); // 리셋
static JButton Dot = new JButton(); // 점 찍기 (소수만들기)
// 숫자 버튼
static JButton Num1 = new JButton();
static JButton Num2 = new JButton();
static JButton Num3 = new JButton();
static JButton Num4 = new JButton();
static JButton Num5 = new JButton();
static JButton Num6 = new JButton();
static JButton Num7 = new JButton();
static JButton Num8 = new JButton();
static JButton Num9 = new JButton();
static JButton Num0 = new JButton();
// 계산 버튼 이미지 생성
private ImageIcon total = new ImageIcon(Server.class.getResource("../Image/Total.png"));
private ImageIcon total_click = new ImageIcon(Server.class.getResource("../Image/Total2.png"));
private ImageIcon plus = new ImageIcon(Server.class.getResource("../Image/Plus.png"));
private ImageIcon plus_click = new ImageIcon(Server.class.getResource("../Image/Plus2.png"));
private ImageIcon minus = new ImageIcon(Server.class.getResource("../Image/Minus.png"));
private ImageIcon minus_click = new ImageIcon(Server.class.getResource("../Image/Minus2.png"));
private ImageIcon multiply = new ImageIcon(Server.class.getResource("../Image/Multiply.png"));
private ImageIcon multiply_click = new ImageIcon(Server.class.getResource("../Image/Multiply2.png"));
private ImageIcon devide = new ImageIcon(Server.class.getResource("../Image/Devide.png"));
private ImageIcon devide_click = new ImageIcon(Server.class.getResource("../Image/Devide2.png"));
private ImageIcon percent = new ImageIcon(Server.class.getResource("../Image/Percent.png"));
private ImageIcon percent_click = new ImageIcon(Server.class.getResource("../Image/Percent2.png"));
private ImageIcon delete = new ImageIcon(Server.class.getResource("../Image/Delete.png"));
private ImageIcon delete_click = new ImageIcon(Server.class.getResource("../Image/Delete2.png"));
private ImageIcon reset = new ImageIcon(Server.class.getResource("../Image/Reset.png"));
private ImageIcon reset_click = new ImageIcon(Server.class.getResource("../Image/Reset2.png"));
private ImageIcon dot = new ImageIcon(Server.class.getResource("../Image/Dot.png"));
private ImageIcon dot_click = new ImageIcon(Server.class.getResource("../Image/Dot2.png"));
// 숫자 버튼 이미지 생성
private ImageIcon num1 = new ImageIcon(Server.class.getResource("../Num_Image/Num1.png"));
private ImageIcon num1_click = new ImageIcon(Server.class.getResource("../Num_Image/Num1_2.png"));
private ImageIcon num2 = new ImageIcon(Server.class.getResource("../Num_Image/Num2.png"));
private ImageIcon num2_click = new ImageIcon(Server.class.getResource("../Num_Image/Num2_2.png"));
private ImageIcon num3 = new ImageIcon(Server.class.getResource("../Num_Image/Num3.png"));
private ImageIcon num3_click = new ImageIcon(Server.class.getResource("../Num_Image/Num3_2.png"));
private ImageIcon num4 = new ImageIcon(Server.class.getResource("../Num_Image/Num4.png"));
private ImageIcon num4_click = new ImageIcon(Server.class.getResource("../Num_Image/Num4_2.png"));
private ImageIcon num5 = new ImageIcon(Server.class.getResource("../Num_Image/Num5.png"));
private ImageIcon num5_click = new ImageIcon(Server.class.getResource("../Num_Image/Num5_2.png"));
private ImageIcon num6 = new ImageIcon(Server.class.getResource("../Num_Image/Num6.png"));
private ImageIcon num6_click = new ImageIcon(Server.class.getResource("../Num_Image/Num6_2.png"));
private ImageIcon num7 = new ImageIcon(Server.class.getResource("../Num_Image/Num7.png"));
private ImageIcon num7_click = new ImageIcon(Server.class.getResource("../Num_Image/Num7_2.png"));
private ImageIcon num8 = new ImageIcon(Server.class.getResource("../Num_Image/Num8.png"));
private ImageIcon num8_click = new ImageIcon(Server.class.getResource("../Num_Image/Num8_2.png"));
private ImageIcon num9 = new ImageIcon(Server.class.getResource("../Num_Image/Num9.png"));
private ImageIcon num9_click = new ImageIcon(Server.class.getResource("../Num_Image/Num9_2.png"));
private ImageIcon num0 = new ImageIcon(Server.class.getResource("../Num_Image/Num0.png"));
private ImageIcon num0_click = new ImageIcon(Server.class.getResource("../Num_Image/Num0_2.png"));
public Program() {
Calculator(); // 계산기 화면 함수
Calculation_Button(); // 계산 버튼 함수
Num_Button(); // 숫자 버튼 함수
} // Program()
public void Calculator() { // 계산기 화면
setTitle("계산기"); // 화면 타이틀
setSize(480,600); // 화면 크기
setVisible(true); // 화면이 보이는 코드
setLayout(null); // 레이아웃 사용자 마음대로 설정 가능하게 함
setResizable(false); // 창의 크기 변경 X
setLocationRelativeTo(null); // 창의 위치가 화면 중앙으로 나오게 함
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 정상적으로 종료될 수 있게 함
} // Calculator()
public void Calculation_Button() {
Total.setLayout(null);
Total.setIcon(total); // 기본 이미지 설정
Total.setBorderPainted(false); // 버튼 테두리 해제
Total.setBounds(345, 492, 120, 70); // 버튼 위치 설정
Total.setRolloverIcon(total_click); // 마우스 올리면 버튼 색상 변경
Plus.setLayout(null);
Plus.setIcon(plus);
Plus.setBorderPainted(false);
Plus.setBounds(345, 422, 120, 70);
Plus.setRolloverIcon(plus_click);
Minus.setLayout(null);
Minus.setIcon(minus);
Minus.setBorderPainted(false);
Minus.setBounds(345, 352, 120, 70);
Minus.setRolloverIcon(minus_click);
Multiply.setLayout(null);
Multiply.setIcon(multiply);
Multiply.setBorderPainted(false);
Multiply.setBounds(345, 282, 120, 70);
Multiply.setRolloverIcon(multiply_click);
Devide.setLayout(null);
Devide.setIcon(devide);
Devide.setBorderPainted(false);
Devide.setBounds(345, 212, 120, 70);
Devide.setRolloverIcon(devide_click);
Percent.setLayout(null);
Percent.setIcon(percent);
Percent.setBorderPainted(false);
Percent.setBounds(115, 212, 120, 70);
Percent.setRolloverIcon(percent_click);
Delete.setLayout(null);
Delete.setIcon(delete);
Delete.setBorderPainted(false);
Delete.setBounds(225, 212, 120, 70);
Delete.setRolloverIcon(delete_click);
Reset.setLayout(null);
Reset.setIcon(reset);
Reset.setBorderPainted(false);
Reset.setBounds(0, 212, 120, 70);
Reset.setRolloverIcon(reset_click);
Dot.setLayout(null);
Dot.setIcon(dot);
Dot.setBorderPainted(false);
Dot.setBounds(225, 492, 120, 70);
Dot.setRolloverIcon(dot_click);
add(Dot);
add(Reset);
add(Delete);
add(Percent);
add(Devide);
add(Multiply);
add(Minus);
add(Total);
add(Plus);
} // Calculation_Button()
public void Num_Button() {
Num1.setLayout(null);
Num1.setIcon(num1);
Num1.setBorderPainted(false);
Num1.setBounds(0, 422, 120, 70);
Num1.setRolloverIcon(num1_click);
Num2.setLayout(null);
Num2.setIcon(num2);
Num2.setBorderPainted(false);
Num2.setBounds(115, 422, 120, 70);
Num2.setRolloverIcon(num2_click);
Num3.setLayout(null);
Num3.setIcon(num3);
Num3.setBorderPainted(false);
Num3.setBounds(225, 422, 120, 70);
Num3.setRolloverIcon(num3_click);
Num4.setLayout(null);
Num4.setIcon(num4);
Num4.setBorderPainted(false);
Num4.setBounds(0, 352, 120, 70);
Num4.setRolloverIcon(num4_click);
Num5.setLayout(null);
Num5.setIcon(num5);
Num5.setBorderPainted(false);
Num5.setBounds(115, 352, 120, 70);
Num5.setRolloverIcon(num5_click);
Num6.setLayout(null);
Num6.setIcon(num6);
Num6.setBorderPainted(false);
Num6.setBounds(225, 352, 120, 70);
Num6.setRolloverIcon(num6_click);
Num7.setLayout(null);
Num7.setIcon(num7);
Num7.setBorderPainted(false);
Num7.setBounds(0, 282, 120, 70);
Num7.setRolloverIcon(num7_click);
Num8.setLayout(null);
Num8.setIcon(num8);
Num8.setBorderPainted(false);
Num8.setBounds(115, 282, 120, 70);
Num8.setRolloverIcon(num8_click);
Num9.setLayout(null);
Num9.setIcon(num9);
Num9.setBorderPainted(false);
Num9.setBounds(225, 282, 120, 70);
Num9.setRolloverIcon(num9_click);
Num0.setLayout(null);
Num0.setIcon(num0);
Num0.setBorderPainted(false);
Num0.setBounds(0, 492, 240, 70);
Num0.setRolloverIcon(num0_click);
add(Num1);
add(Num2);
add(Num3);
add(Num4);
add(Num5);
add(Num6);
add(Num7);
add(Num8);
add(Num9);
add(Num0);
} // Num_Button()
} // JFrame
실행 결과
기능은 구현을 안해서 이렇게 뜬다.
마우스를 올리면 이렇게 색상이 바뀌게도 구현하였다. 근데 작년에 혼자 프로젝트를 할 때 이미지만 사용해서 구현할 수 있던거라서 일단 아무생각없이 이미지로 UI를 구현하긴했는데 계산기는 숫자랑 연산 버튼을 눌러서 연산이 되어야하는데 그게 이미지로만 구현하기엔 힘들것같아서 아예 갈아 엎기로 마음먹었다. 오랜만에 구현했던건데 아직 기억도 하고 있다는거에 만족하였다.
728x90
'Java > 프로그램' 카테고리의 다른 글
[Java] 계산기 프로그램 3일차 - ActionListener 사용해서 기능 버튼 기능 구현 (아직 오류 있음) (0) | 2023.05.23 |
---|---|
[Java] 계산기 프로그램 2일차 - JTextField, JPanel, JButton을 사용하여 UI 구현하기 (0) | 2023.05.20 |