자바JFrame 문제입니다
조회수 1518회
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); 로 확인해보니 이때는 또 잘 계산되서 나오구요
무슨 문제가 있는건가요??
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력