자바 Swing(스윙) - (5)

2022. 10. 6. 08:43Dev.Program/Java & Spring

728x90

 

======== JAVA0428 → Ex.java

< JTable >

import javax.swing.JFrame;

public class Ex extends JFrame {

public Ex() {
showFrame();
}

public void showFrame() {
setBounds(600, 400, 300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);
}


public static void main(String[] args) {
new Ex();
}

}
  • 기본 틀 만들기

 

JTable 은 기본적으로 JScrollPane 얹어서 씀! (좌우 위아래 스크롤 바 사용)

< JTable 에 데이터를 추가하는 방법 >

1. DefaultTableModel 객체를 생성하여 배열 형태로 데이터 추가 

⇒ 1차원 배열 : 열 제목, 2차원 배열 : 각 데이터(1개 행 = 1차원 배열)

2. Vector 객체를 사용하여 제목과 데이터를 설정하는 방법

2-1. 제목과 데이터가 모두 한 번에 추가되는 경우

2-2. 제목열만 먼저 추가 후, 1개 레코드의 Vector 객체를 별도로 추가하는 방법

 

JPanel 을 center 에 넣고 absolute 로 변경

그 위에 scrollPane ⇒ bounds 로 크기 변경 가능 그럼 view 포인터 등등 보임

그 위에 table 얹기

  • model 옆에 … 누르기!

  • 창이 열리면 열과 행 수 적어주기 ⇒ 테이블 자동 생성

  • 더블클릭하면 값 넣기 가능



  • 우린 벡터 사용 ([]배열은 크기고정 및 단점이 많아서 잘 사용하지 않음)

ArrayList ← Bean 넣음 ( 우리가 jsp 시간에 늘 하던거 )

우린 Vector ← Vector 넣음 (Bean만 없는 것일 뿐 방법은 똑같다!)





  • 제목열

 

1번 배열 쓸 일은 잘 없고, 2-1 과 2-2 잘 씀 (벡터사용)

 

======== Ex2.java

< JOptionPane 클래스 >

  • 간단한 다이얼로그(Dialog) 를 사용하여 사용자와 상호작용하는 객체
  • JOptionPane.showXXXDialog() 메서드 사용

1) MessageDialog : 사용자에게 메세지 표시

JOptionPane.showMessageDialog(parentComponent, message, title, messageType, icon);
  • parentComponent : 다이얼로그를 표시할 대상 컴포넌트

⇒ 참조변수 지정 시 해당 컴포넌트 위에 표시됨

         만약, null 값 지정 시 화면 가운데 표시됨

  • message : 사용자에게 보여질 다이얼로그 메세지 본문
  • title : 다이얼로그 제목 표시줄 내용
  • messageType : 다이얼로그 성격을 지정

      ⇒ JOptionPane.XXX_MESSAGE 상수 사용하여 지정

         INFORMATION_MESSAGE : 일반적인 정보(보라색 '!' 아이콘)

         WARNING_MESSAGE : 경고 정보(노란색 '!' 아이콘)

         ERROR_MESSAGE : 오류 정보(빨간색 'X' 아이콘)

         QUESTION_MESSAGE : 질문 정보(초록색 '?' 아이콘)

         PLAIN_MESSAGE : 아이콘 없음

 

2) ConfirmDialog : 사용자로부터 버튼을 눌러서 확인

⇒ 리턴타입이 int이므로 선택한 버튼에 대한 결과값 받아 판별 가능

JOptionPane.showConfirmDialog(parentComponent, message, title, optionType, messageType);
  • parentComponent : 동일
  • message : 동일
  • title : 동일
  • optionType : 확인할 버튼의 종류 설정

JOptionPane.XXX_OPTION 상수 사용

⇒ YES_NO_OPTION : 예(Y), 아니오(N) 버튼

         YES_NO_CANCEL_OPTION : 예(Y), 아니오(N), 취소 버튼

         OK_CANCEL_OPTION : 확인, 취소 버튼

      ⇒ 리턴값으로 전달되는 선택 버튼의 값이 다름

         (YES_OPTION 과 OK_OPTION 은 동일한 값, NO_OPTION, CANCEL_OPTION)

  • messageType : 동일

 

3) InputDialog : 사용자로부터 값을 입력

⇒ 리턴타입이 String 이므로 입력받은 값 저장 가능

 



< 필기 시험 >

필기 20문제 서술많음 코딩도 있음 no오픈북

객관식 2-3문제 2점

주관식 단답 4점

주관식 서술 8점…정도?

코딩 10점

 

< 실기 : 과제 >

“빅데이터_191226_자기이름_MemberGUI.java” 

화면이 완전 똑같을 필요는 없고 구성만 맞추기

 

< user 테이블 생성 >

필드
1. 번호(idx) INT형 PK(PRIMARY KEY) AI(AUTO_INCREMENT)
2. 아이디(id) VARCHAR(10) UN NN
3. 패스워드(password) VARCHAR(16) NN

CREATE TABLE user (
idx INT PRIMARY KEY AUTO_INCREMENT,
id VARCHAR(10) NOT NULL UNIQUE,
password VARCHAR(16) NOT NULL
);
  • user 테이블과 member 테이블 사용할 것!

  • mysql

 

  • 왼쪽 위 IP 값 localhost 는 setText 로 박아두기(고정)
  • 아무것도 안넣고 로그인 누르면 DB 계정입력 필수! 뜨게 나오기
  • 아이디 비고 로그인 눌렀을 때, 비밀번호 비고 로그인 눌렀을 때 등 메세지창 띄우기
  • 로그인 실패하면 창 띄우고, 로그인 성공하면 Login 버튼 을 Logout 으로 바꾸기
  • 로그인 될때만 버튼 동작하도록! (isXXX 변수로 login/logout 구분 가능! 알아서 구현해보기)

 

  • username(id) 랑 password 입력값으로 고정

 

  • 실패하면 실패했다고 띄우기








  • 목록 누를 때마다 계속 추가가될텐데… 그건 안배움! 시험 당일 날 알려줌!
  • 추가 삭제 시 목록 갱신(목록 띄우는 메서드 한 번 더 호출하면 됨!)





< 클래스 구조 >

======== MemberGUI.java / MemberDAO.java

DB 작업은 MemberDAO 에서 할 거!

 

728x90

'Dev.Program > Java & Spring' 카테고리의 다른 글

MVC2 - (2) Service 클래스  (0) 2022.10.07
MVC2 - (1)  (0) 2022.10.07
자바 Swing(스윙) - (4)  (0) 2022.10.06
자바 Swing(스윙) - (3)  (0) 2022.10.06
자바 Swing(스윙) - (2)  (0) 2022.10.06