//main에서 틀을 잡고
//field에서 기능구현
비행기의 출발지와 도착지 비행기의 최대승객수 항공사 항공기번호
이런것들을 입력받아서 비행기들을 관리하는 프로그램.
변경은 출발지와 도착지만 변경할 수 있게끔 만들것임.
참고)
JOptionPane.showOptionDialog : 매개변수를 넘겨주면 해당 창을 만들어줌.
JOptionPane.showOptionDialog의 기본형.
JOptionPane.showOptionDialog(null, menu, null, choice, choice, img, args, menu)
icon img넣는법
버튼 사용법 : 5개의 버튼이 만들어지게 된다.
이렇게 나온다! 귀엽다.
JOptionPane.showOptionDialog(); => 메서드이다.
메서드를 보면 항상 return값이 있는지 없는지 부터 확인해보자.
int 타입의 return값이 있다. = 얘 통째로를 값으로 볼 수 있겠구나!
choice라는 저장공간에 담자.
int choice = 0;
JOptionPane을 담으니 한번 실행하고 해당 값이 콘솔에 출력(0~4)되며 창이 꺼진다.
==> 그러면! 무한반복문을 사용해보자.
-1이 되면 break되도록 작성하였다. x버튼을 누르기 전까진 창이 꺼지지 않게 된다.
5개의 버튼 중에서 하나의 버튼 선택에 다른 값을 switch문을 통해 틀을 잡자.
=> AmsField로 넘어간다.
5개 버튼에 대한 메소드를 AmsField에서 생성한다.
항공사, 항공기번호, 최대승객수, 출발지, 도착지 : 한 비행기에 대한 정보들이다.
하나의 비행기에 대한 저장공간 5개가 필요하다.
5칸짜리 배열 생각
=> 비행기는 여러대이기 때문에 : 2차원 배열에 정보를 저장하자!
한 행이 한 비행기의 정보, 한 열이 그 주제에 맞는 종류들.
2차원배열에 비행기의 정보를 저장한다.
2차원배열은 이 5개가 다 사용되기 때문에 전역변수로 선언. (default로 선언)
2차원배열[0] = 1차원배열;
count선언
: 전역변수로 선언(자동초기화=0)
지역변수에 선언하게 되면 영원히 count는 0이다. = 메소드가 호출 될때마다 0으로 리셋되기때문.
insert에 매개변수 5개 필요하다.
매개변수5개보다 배열5칸짜리가 편하기 때문에 배열로 적어주자.
insert에 한번 접근해서 한번 더 접근한다.
내가 insert메소드를 한번 사용했다는건 이미 하나가 0번째방에 들어갔다는것.
2번째사용은? 기존에 있던걸 기억하고 다음에 넣어줘야한다.
insert메소드를 호출할때마다 count가 증가가 된다.
그 count를 index에 넣어주면 그 전의 count를 기억하고 있는다.
한번 호출할때마다 count를 1씩 증가시켜주면 그 숫자가 인덱스 번호가 될 것이다.
arrPlane[cnt] = arPlane;
한국말로 풀자면 cnt=1이면 인덱스번호1번의 비행기가 추가가 된다는 코드임.
다시 메인으로 돌아와서!
AmsField af = new AmsField();
추가하기 메소드를 사용하기 위해 메인에서 생성자를 만든다.
String [] arPlane = new String[5];
비행기의 정보를 받기 위한 배열.
String insertMsg = "[추가하실 정보를 그대로 입력하세요(,포함)]\n"
+ "항공사, 항공기번호,최대승객수, 출발지, 도착지";
arPlane = JOptionPane.showInputDialog(insertMsg).split(", ");
af.insert(arPlane);
쉼표와 띄어쓰기 구분으로 각각의 값들을 배열에 담음.
문자열에서 구분점(,)을 주고 구분점대로 값을 나눠주는 split라는 애가 있다.
split은 자동적으로 리스트타입(배열타입)으로 받게된다.
=> AmsField에서 show(목록보기)에 대한 기능을 추가해주자.
한 비행
main에서 show메서드 사용.
af.show() => 결과값이다.
<추가하기 입력창>
<목록보기>
정적배열이기에 길이가 고정되어있어서 5번씩 100번반복하게 된다..
그래서 100개의 비행기가 값도 없는데 다 출력되어서 나오게 된다.
내가 출력한 값만 보이게 rLenght를 cnt로 설정한다.
추가한 비행기가 없는데 목록보기를 눌렀을 때 '목록없음'을 표시해주자.
cnt = 0일때로 설정.
검색하기