AMS

김지원·2022년 5월 30일
0

Java

목록 보기
23/38
post-thumbnail

//main에서 틀을 잡고
//field에서 기능구현
비행기의 출발지와 도착지 비행기의 최대승객수 항공사 항공기번호
이런것들을 입력받아서 비행기들을 관리하는 프로그램.
변경은 출발지와 도착지만 변경할 수 있게끔 만들것임.

참고)
JOptionPane.showOptionDialog : 매개변수를 넘겨주면 해당 창을 만들어줌.

JOptionPane.showOptionDialog의 기본형. 
JOptionPane.showOptionDialog(null, menu, null, choice, choice, img, args, menu)

icon img넣는법

  • 이미지 아이콘 클래스에서 생성자는 여기에 '상대경로'를 넣어주면 이미지의 값을 가지게 된다.
  • 절대 경로 : 내 위치가 어디든지 찾아갈 수 있는 경로(첫번째 경로부터 쭉 써주는 것)
  • 상대 경로 : 내 위치에 따라서 변경되는 경로

버튼 사용법 : 5개의 버튼이 만들어지게 된다.

  • options : 버튼
  • 버튼은 배열로 구성되어있음. 0번째 방이 1번버튼...
  • 우리는 버튼을 만드는게 아닌 버튼에 들어갈 메세지를 적는다.


이렇게 나온다! 귀엽다.

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일때로 설정.


검색하기

0개의 댓글

관련 채용 정보