package sdaf;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class sacas extends JFrame {
JLabel aValuelabel; //계선결과출력부분
public static void main(String[] args) {
new sacas();
}
String presentValue; // 현재입력중인숫자
int aValue; // 중간계산 결과
char last; // 이전 선택한 연산자
JButton plus, minus, multi, div, equal, clear ; // 연산버튼
public sacas() {
super("자바 텀프로젝트 계산기");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton bNum[] = new JButton[10]; // 숫자버튼 컴퍼넌트를생성
aValuelabel = new JLabel("0", JLabel.RIGHT);
add(aValuelabel, BorderLayout.NORTH); // 계산창을보여준다
JPanel p = new JPanel(new GridLayout(4,4,10,10)); // 열,행,열사이의거리,행사이의거리
add(p, BorderLayout.CENTER); //계산기의몸체ㄹㄹ보여준
plus = new JButton("+");
minus = new JButton("-");
multi = new JButton("*");
div = new JButton("/");
equal = new JButton("=");
clear = new JButton("C");
setSize(500,500);
setVisible(true);
int i;
for( i=0;i<bNum.length;i++ ) {
bNum[i] = new JButton(Integer.toString(i)); //숫자를 문자열로바꿈 공간생성
}
p.add(bNum[7]); p.add(bNum[8]); p.add(bNum[9]); p.add(plus);
p.add(bNum[4]); p.add(bNum[5]); p.add(bNum[6]); p.add(minus);
p.add(bNum[1]); p.add(bNum[2]); p.add(bNum[3]); p.add(multi);
p.add(bNum[0]); p.add(equal); p.add(clear); p.add(div);
Calculator a = new Calculator(); //위에 이벤트리스너들을 연결
for( i=0;i<bNum.length;i++ ) {
bNum[i].addActionListener(a);
}
lator b = new lator();
plus.addActionListener(b);
minus.addActionListener(b);
multi.addActionListener(b);
div.addActionListener(b);
equal.addActionListener(b);
clear.addActionListener(b);
setVisible(true);
}
// 숫자버튼 이벤트 처리
class Calculator implements ActionListener { //칼큐레이터클래스는 액션리스너 인터페이스를 구현한다.
public void actionPerformed(ActionEvent e) { //버튼클릭시발동되는메소드
String s = e.getActionCommand(); //클릭한버튼의레이블
if(presentValue == null) {
if( s.equals("0")) return ; // 첫자리가 0이면 무시
else presentValue = new String(); //첫자리이면 스트링 객체생성
}
presentValue += s; // 두번째 이후이면 누른 숫자 덧붙이기
aValuelabel.setText(presentValue); //현재숫자화면에 표시
}
}
// 기타버튼의 이벤트처
class lator implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton source = (JButton)e.getSource();
int value;
// 지우기
if( source == clear ) {
aValuelabel.setText("0"); //화면및 각변수 초기화
presentValue = null; //String 타입의 현재 숫자
last = 0; // char 타입의 마지막 연산자
aValue = 0; // int 타입의 중간계산 결과
return ;
}
if( presentValue != null ) { // 현재값과 널값이 같지않다면 값을출력
value = Integer.parseInt(presentValue);
switch(last) {
case '+': aValue += value; break;
case '-': aValue -= value; break;
case '*': aValue *= value; break;
case '/': aValue /= value; break;
default : aValue = value; break;
}
aValuelabel.setText(Integer.toString(aValue));
}
presentValue = null;
last = source.getText().charAt(0);
}
}
}
결과값창이너무작아서 그런데 결과값창을 크게하려면 어떻게해야하나요?
저 사진에서 결과값은 0이자나요 저기창을 크게어떻게해야하나요?
그림과 글에있는코드에 클래스가 다른데 그거는 신경안쓰셔도될꺼같습니다.
라벨사이즈랑 폰트는 어떻게 크기조절을하죠?? ㅜㅜ
안녕하세요 수제화 구두 사이트 입니다. 네이버 다음 줌에서 퍼스트구두를 검색하고 자주 놀러와주세요.감사합니다.