import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Practice03 extends JFrame{
JPanel contentPane;
JTextField total=new JTextField(15);
JTextField[] money=new JTextField[8];
JButton sum=new JButton("계산");
JLabel to=new JLabel("금액");
JLabel[] mo={new JLabel("오만원"),new JLabel("만원"),new JLabel("천원"),new JLabel("오백원"),
new JLabel("백원"),new JLabel("오십원"),new JLabel("십원"),new JLabel("일원")};
Practice03(){
setTitle("Money Changer");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane=new JPanel();
contentPane.setSize(300,300);
contentPane.setBackground(Color.PINK);
contentPane.setOpaque(true);
setContentPane(contentPane);
contentPane.setLayout(new FlowLayout());
to.setSize(50, 20);
contentPane.add(to);
total.setEditable(false);
contentPane.add(total);
sum.addActionListener(new MyActionListener());
contentPane.add(sum);
for(int i=0;i<money.length;i++){
mo[i].setSize(50,20);
contentPane.add(mo[i]);
money[i]=new JTextField(6);
contentPane.add(money[i]);
}
setSize(300,300);
setVisible(true);
}
class MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
int 오만원=Integer.parseInt(money[0].getText())*50000;
int 만원=Integer.parseInt(money[1].getText())*10000;
int 천원=Integer.parseInt(money[2].getText())*1000;
int 오백원=Integer.parseInt(money[3].getText())*500;
int 백원=Integer.parseInt(money[4].getText())*100;
int 오십원=Integer.parseInt(money[5].getText())*50;
int 십원=Integer.parseInt(money[6].getText())*10;
int 일원=Integer.parseInt(money[7].getText())*1;
int sum=오만원+만원+천원+오백원+백원+오십원+십원+일원;
total.setText(Integer.toString(sum));
}
}
public static void main(String[] args) {
// TODO 자동 생성된 메소드 스텁
new Practice03();
}
}
이런식으로 돈 단위마다 돈의 갯수를 입력해서 총합을 구하는 프로그램을 짰는데요,
계산은 제대로 되지만 영 보기가 좋지 않네요.
금액 총합이 나오는 맨 윗줄만 (금액 "텍스트 필드" 계산 버튼) 식으로 만들고
단위별로 돈 갯수를 입력하는 부분은
오만원 "텍스트 필드"
만원 "텍스트 필드"
.....
이런식으로 만들고 싶은데,
플로우 레이아웃으로 만드니 컴포넌트들의 배치가 개판이 되고,
그리드 레이아웃으로 하니 맨 윗줄은 3열인데
아랫줄들은 2열이라 영 만들기가 번거롭네요.
아예 레이아웃을 null로 만들고 일일이 지정하는게 차라리 나은건지...
조금더 깔끔하게 레이아웃을 만드는 방법이 알고 싶습니다 ㅠㅠ