Java/Excercise

callback ch05 Phonebook

낭구리 2021. 9. 10. 16:57
package ch05;

import java.util.ArrayList;
import java.util.Scanner;

public class InputPhoneNumber {

	private ArrayList<String> userName = new ArrayList<>();
	private ArrayList<String> telNumber = new ArrayList<>();
	
	public ArrayList<String> getUserName() {
		return userName;
	}	
	public ArrayList<String> gettelNumber() {
		return telNumber;
	}
	
	
	public void savePhoneNumber() {
		Scanner scanner = new Scanner(System.in);
		String name = "";
		String number = "";
		
		
		do {
			System.out.println("중지하려면 -1을 입력하세요.");
			System.out.println("*** 이름을 입력하세요. ***\n"); 
//		\n 엔드라인
			name = scanner.nextLine();
			if(!name.equals("-1")) { //-1을 입력하면 밑에 전화번호가 입력이 되지않도록하는 if문
				System.out.println("*** 전화번호를 입력하세요. ***\n");
				number = scanner.nextLine();
				userName.add(name);
				telNumber.add(number);
			}
		}while(!(name.equals("-1")));
	}
	
	public void showInfo() {
		System.out.println("----------------------");
		for (int i = 0; i < userName.size(); i++) {
			System.out.print("[" + userName.get(i)+ "] :  \t"); //탭간격 \t
			System.out.println(telNumber.get(i));
		}
		System.out.println("----------------------");
	}
	public static void main(String[] args) {
		InputPhoneNumber inputPhoneNumber =  new InputPhoneNumber();
		inputPhoneNumber.savePhoneNumber();
		inputPhoneNumber.showInfo();
	}
	
}

 

 

package ch05;

import java.awt.GridLayout;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class PhoneBook extends JFrame {

	// 포함관계
	//다른 클래스를 만들어서 다른코드를 사용할 수있다.
//	변수선언 변수선언과 동시에 초기화
	private InputPhoneNumber inputPhoneNumber;

	public PhoneBook() {
		inputPhoneNumber = new InputPhoneNumber();
		inputPhoneNumber.savePhoneNumber();// UI만들기전에 saveP~ 호출
		initData();
		setInitLayout();
	} //생성자 > save 메서드 호출 > 

	private void initData() {
		setTitle("phone book");
		setSize(500, 500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}// 캡슐화(정보은닉) 겉으로는 보이지않음

	private void setInitLayout() {
		ArrayList<String>name = inputPhoneNumber.getUserName();
		ArrayList<String>tel = inputPhoneNumber.gettelNumber();
		int nametext = 10;
		int teltext= 20;
		setLayout(new GridLayout(name.size(),2));
		for (int i = 0; i < name.size(); i++) {
			JTextField field1 =new JTextField(name.get(i),nametext);
			JTextField field2 =new JTextField(tel.get(i),teltext);
			add(field1);
			add(field2);
		}
		setVisible(true);
	}

	
	//테스트 코드
	public static void main(String[] args) {
		new PhoneBook();
	}
	
}

'Java > Excercise' 카테고리의 다른 글

swing ch08 RunLottoGame  (0) 2021.09.10
swing ch07 MainTest lotto  (0) 2021.09.10
callback ch04 News  (0) 2021.09.09
callback ch04 CalendarMainTest  (0) 2021.09.09
callback ch03 Activity 상속받아 콜백  (0) 2021.09.09