자바JFrame 문제입니다


package work_1;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Paycalculate extends JFrame {
int Salary,overSalary;
String name, printing;
int workTime, overTime;
JPanel uperPane, underPane;
JTextField sal_b, name_b, time_b;
JLabel sal_l, name_l, time_l;
JTextArea result;
JButton b1, b2;

public Paycalculate() {
    super("급여계산기");
    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    uperPane = new JPanel();
    uperPane.setLayout(new GridLayout(3, 2));
    name_l = new JLabel("이름: ");
    sal_l = new JLabel("시급: ");
    time_l = new JLabel("근무시간: ");

    name_b = new JTextField(8);
    sal_b = new JTextField(8);
    time_b = new JTextField(8);

    uperPane.add(name_l);
    uperPane.add(name_b);
    uperPane.add(sal_l);
    uperPane.add(sal_b);
    uperPane.add(time_l);
    uperPane.add(time_b);

    result = new JTextArea(30, 40);

    underPane = new JPanel();
    b1 = new JButton("삭제");
    b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            name_b.setText("");
            sal_b.setText("");
            time_b.setText("");
            result.setText("");
        }
    });
    b2 = new JButton("입력");
    b2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            try{name = name_b.getText();
            Salary = Integer.parseInt(sal_b.getText());
            workTime = Integer.parseInt(time_b.getText());
            result.setText(output());
            result.setEditable(false);
            }catch(NumberFormatException e1) {
                result.setText("잘못된 입력입니다");
            }}
    });
    underPane.add(b1);
    underPane.add(b2);

    c.add(uperPane, BorderLayout.NORTH);
    c.add(result, BorderLayout.CENTER);
    c.add(underPane, BorderLayout.SOUTH);

    setVisible(true);
    setSize(300, 400);
}

public double taxCal() {
    return (Salary + overSalary() * 0.1);

}

public int overSalary() {

        overTime = workTime - 40;
        if(overTime<=0) {
            overTime = 0;
        }
        overSalary = (int) (overTime * (Salary * 2));
    return overSalary;
}

public int totalSalary() {
    return (int) (((workTime * Salary) + overSalary()) - taxCal());

}

public String output() {

    printing = "이름: " + name + "\n시급: " + Salary + "\n근무시간: " + workTime + "\n초과근무시간: " + overTime + "\n총급여: "
            + totalSalary();
    System.out.println("문제: " + overTime);

    return printing;

}

public static void main(String[] args) {
    Paycalculate pay = new Paycalculate();
    pay.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

이클립스에서 스윙 연습하다가 생긴 문제인데요 output() 메소드에서 결과를 JFrame판에 출력할때 overTime 값이 0으로 출력되요

무슨 문제가 있나 싶어서 System.out.println("문제: " + overTime); 로 확인해보니 이때는 또 잘 계산되서 나오구요

무슨 문제가 있는건가요??


조회수 225


Hashcode banner summercoding

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close