본문 바로가기
자바

자바 소스코드: Money Changer(체크한 곳만 금액 단위별 나누기)

by 드린 2016. 10. 29.

목차

    반응형
    package javaapplication50;
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    
    class Ex4 extends JFrame 
    {
        int[] moneyc = {50000, 10000, 1000, 500, 100, 50, 10, 1};
        String[] str = {"금액", "오만원", "만원", "천원", "500원", "100원", "50원", "10원", "1원"};
        JLabel la = new JLabel();
        JTextField[] tf = new JTextField[str.length];
        JButton btn = new JButton("계산");
        JCheckBox[] box = new JCheckBox[moneyc.length-1];
        boolean b=true;
        boolean[] jcb=new boolean[moneyc.length];
        Ex4() 
        {
            this.setTitle("Money Changer");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.getContentPane().setBackground(Color.PINK);
            this.setLayout(null);
            
            la = new JLabel(str[0]);
            la.setSize(40, 20);
            la.setLocation(20, 20);
            this.add(la);
            
            tf[0] = new JTextField(30);
            tf[0].setSize(100, 20);
            tf[0].setLocation(100, 20);
            this.add(tf[0]);
            
            btn.setSize(70, 20);
            btn.setLocation(210, 20);
            btn.addActionListener(new ActionListener(){
                @Override
                public void actionPerformed(ActionEvent e) {
                    String mon = tf[0].getText();
                if(mon.length() == 0) 
                    return;
                
                int money = Integer.parseInt(mon);
                int m;
                
                for(int i=0; i<moneyc.length; i++) 
                {
                    if(jcb[i]==true){
                    m = money/moneyc[i];
                    tf[i + 1].setText(Integer.toString(m));
                    if(m > 0) 
                        money = money % moneyc[i];
                    }
                    else if(jcb[i]==false){
                        tf[i+1].setText("0");
                    }
                }
                }
            });
            this.add(btn);
            for(int i = 1; i < str.length; i++)
            {
                la = new JLabel(str[i]);
                la.setHorizontalAlignment(JLabel.RIGHT);
                la.setSize(50, 20);
                la.setLocation(50, 50+(i*20));
                
                tf[i] = new JTextField(30);
                tf[i].setHorizontalAlignment(JTextField.CENTER);
                tf[i].setSize(70, 20);
                tf[i].setLocation(120, 50+(i*20));
                
                if(i<str.length-1){
                    box[i-1] = new JCheckBox();
                    box[i-1].setBackground(Color.PINK);
                    box[i-1].addItemListener(new MyItemListener());
                    box[i-1].setHorizontalAlignment(JCheckBox.CENTER);
                    box[i-1].setSize(20, 20);
                    box[i-1].setLocation(210, 50+(i*20));
                    this.add(box[i-1]);
                }
                this.add(la);
                this.add(tf[i]);
            }
            setSize(300, 300);
            setVisible(true);
        }
        class MyItemListener implements ItemListener{
            @Override
            public void itemStateChanged(ItemEvent e) {
                if(e.getStateChange()==ItemEvent.SELECTED)
                    b=true;
                else
                    b=false;
                
                for(int i=0; i<jcb.length; i++){
                    if(i==jcb.length-1)
                        jcb[i]=true;
                    else if(e.getItem()==box[i])
                        jcb[i]=b;
                }
            }
        }
    }
    public class JavaApplication50 {
        public static void main(String[] args) {
            new Ex4();
        }
    }
    
    

    <결과>

    2016/10/29 - [자바] - 자바 소스코드: Money Changer(금액 단위별 나누기)

    2016/10/29 - [자바] - 자바 소스코드: 텍스트필드와 콤보 박스를 이용한 예제

    2016/10/29 - [자바] - 자바 소스코드: 체크박스 예제(버튼 비활성화, 감추기)

    #자바 #자바 소스코드 #금액 단위별 나누기 #체크한 곳만 금액 단위별 나누기 #명품자바 프로그래밍 실습문제 11장 4번 #자바 예제 #아이템 리스너 #액션 리스너 #객체 생성을 위한 배열

    반응형