본문 바로가기

기능 학습/부동산 취득세 계산기

[부동산 취득세 계산기] 1. UI구성

목록

 

각 주택, 오피스텔, 그 외 건물의 취득세를 계산하기 위해 필수적으로 필요한 버튼들을 구분하여, 해당 기능에 알맞게 나오도록 구성하였고 사용자로 하여금 부정확한 계산을 방지하기 위해 조정대상지역을 알려주는 페이지 생성


 

 

주택 계산 페이지

 

 

오피스텔 계산 페이지

 

 

그 외 건물 계산 페이지

 

조정대상지역 페이지

 

생성

	//--패널생성
	JPanel p = new JPanel(new BorderLayout());//중앙 패널
	JPanel pN = new JPanel(new FlowLayout(0));//상단 페이지명 패널
	JPanel pC = new JPanel(new GridLayout(0,1,1,1));//계산기 패널
	JPanel[] pFlow = new JPanel[8];
	
	//--상단 라벨 생성
	Font font = new Font("궁서체",Font.BOLD,20);
	JLabel label_title = new JLabel("취득세 계산기");
	
	//--계산기 버튼 생성
	JToggleButton[] button = new JToggleButton[11];
	
	//--버튼 그룹 생성
	ButtonGroup bg_BuildingType = new ButtonGroup();
	ButtonGroup bg_BuildingSize = new ButtonGroup();
	ButtonGroup bg_BuildingCount = new ButtonGroup();
	
	//--버튼 이름 생성
	String[] button_text = { "주택", "오피스텔", "그 외 건물", "40m^2 이하", "60m^2 이하", 
			"85m^2 이하", "85m^2 초과", "1주택", "2주택", "3주택", "그 이상"};
	
	//--라디오 버튼 생성
	JRadioButton radio_adjusted_area = new JRadioButton("조정대상지역");
	JButton button_adfusted_area = new JButton("조정대상 지역 보기");
	JRadioButton radio_first_purchase = new JRadioButton("생애최초 구입");
	JRadioButton radio_metropolitan_area = new JRadioButton("수도권");
	JButton button_tax_calculation = new JButton("취득세 계산");
	
	//--금액 입력 및 출력 텍스트필드 생성
	JTextField text_price = new JTextField("금액 입력",20);
	JTextField text_calculation = new JTextField("계산 금액",20);
	
	AdjustedArea adjustedAreaPage = new AdjustedArea();//조정대상지역 페이지 객체
    
	Handler handler = new Handler();//핸들러 객체

 

추가

public Main() {
		super(":::취득세 계산기:::");
		Container cp = this.getContentPane();
		cp.add(p, "Center");
		p.setBackground(Color.white);
		
		//--패널 및 라벨 부착
		p.add(pN,"North");
		pN.add(label_title);
		label_title.setFont(font);
		p.add(pC,"Center");
		pC.setBackground(Color.gray);
		
		
		//--계산기 패널의 사이즈 및 보더 설정
		pC.setPreferredSize(new Dimension(ABORT,ABORT));
		pC.setBorder(new EmptyBorder(70, 0, 200, 0));
		
		
		//--페이지 기본값 설정
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		//--버튼에 버튼이름 넣기
		for(int i=0; i<button.length; i++) {
			button[i] = new JToggleButton(button_text[i]);
		}
		
		//--pFlow 패널 생성
		for(int i=0; i<pFlow.length; i++) {
			pFlow[i] = new JPanel(new FlowLayout(0));
		}
		
		//--계산기 패널에 pFlow 패널 넣기
		for(int i=0; i<8; i++) {
			pC.add(pFlow[i]);
		}
		
		//--pFlow 패널에 버튼 넣기
		for(int i=0; i<=10; i++) {
			pFlow[0].add(button[i]);
			button[0].setSelected(true);
			
			if(i>=3 && i<7) {
				pFlow[1].add(button[i]);
				
			}else if(i>=7) {
				pFlow[2].add(button[i]);
			}
		}
		
		pFlow[3].add(radio_adjusted_area);
		pFlow[3].add(button_adfusted_area);
		pFlow[4].add(radio_first_purchase);
		
		pFlow[4].add(radio_metropolitan_area);
		radio_metropolitan_area.setVisible(false);
		
		pFlow[5].add(text_price);
		pFlow[6].add(button_tax_calculation);
		pFlow[7].add(text_calculation);
		text_calculation.setFont(font);
		text_calculation.setEnabled(false);
		pFlow[7].setVisible(false);
		
		
		//--버튼 그룹 넣기
		for(int i=0; i<button.length; i++) {
			
			bg_BuildingType.add(button[i]);
			
			if(i>=3 && i<7) {
				bg_BuildingSize.add(button[i]);
				
			}else if(i>=7) {
				bg_BuildingCount.add(button[i]);
			}
			
		}
		
		//--핸들러생성
		for(int i=0; i<button.length; i++) {
			button[i].addActionListener(handler);
		}
		
		button_adfusted_area.addActionListener(handler);
		button_tax_calculation.addActionListener(handler);
		radio_first_purchase.addActionListener(handler);
		
	}//--생성자

버튼 및 버튼 이름을 배열로 생성 및 추가하여 코드 최소화