본문 바로가기
국비학원/수업기록

국비 지원 개발자 과정_Day15

by 루팽 2022. 12. 16.

Vector

Object타입을 담을 수 있음(모든 타입을 담을 수 있다)

중간에 값을 삽입할 수 있고, 그다음 값들은 한 자리씩 뒤로 이동한다(자동 크기 조절 가능)

<>에 타입을 지정하지 않으면 여러 데이터 타입을 저장할 수 있다

package dev_java.tables;

import java.util.Vector;

public class Vector3 {
  public static void main(String[] args) {
    // 객체는 생성되었으나 방은 없다
    Vector<Integer> v = new Vector<>();
    // 그렇기에 0이 출력
    System.out.println("사이즈 " + v.size()); // 0
    // 비어있으니 true
    System.out.println(v.isEmpty()); // true
    System.out.println("==========");

    // add해야 공간이 생기고 그 안에 값을 넣음, 인덱스0
    v.add(1);
    // 다시 1을 추가하고 변수에 대입, 인덱스1
    boolean isExist = v.add(1);
    // 사이즈는 2
    System.out.println("사이즈 " + v.size()); // 2
    // 인덱스0에 든 건 1
    System.out.println("인덱스0의값 " + v.get(0)); // 1
    // 인덱스1에 든 건 1
    System.out.println("인덱스1의값 " + v.get(1)); // 1
    // 벡터안에 값이 들어가있음
    System.out.println(isExist); // true
    // 비어있지 않음
    System.out.println(v.isEmpty()); // false
    // 값 1이 들어있음
    System.out.println(v.contains(1)); // true
    // 값 2는 들어있지 않음
    System.out.println(v.contains(2)); // false
    System.out.println("==========");

    // 인덱스1의 값에 2를 추가
    v.add(1, 2);
    // 값 2가 들어있음
    System.out.println(v.contains(2)); // true
    // 인덱스1에 2가 들어감
    System.out.println("인덱스1의값 " + v.get(1)); // 2
    // 인덱스2에 1이 들어감
    System.out.println("인덱스2의값 " + v.get(2)); // 1
    System.out.println("==========");

    // 인덱스 1의 값 2를 지움
    System.out.println(v.remove(1)); // 2
    // 크기는 2
    System.out.println("사이즈 " + v.size()); // 2
    // 하지만 2는 들어있지 않음
    System.out.println(v.contains(2)); // false
  }
}

 

package dev_java.tables;

import java.util.Vector;

public class Vector4 {
  void methodA() {
    String fruits[] = { "키위", "포도", "사과" };
    Vector<String> vFruits = new Vector<>();
    for (int i = 0; i < fruits.length; i++) {
      vFruits.add(i, fruits[i]);
    }

    // 인덱스1에 토마토 추가 -> 1번 이후는 하나씩 밀림
    vFruits.add(1, "토마토");

    // 포도 삭제 (포도는 원래 인덱스1 -> 토마토 추가되서 인덱스2로 밀림 -> 인덱스2삭제)
    // vFruits.remove(2);

    // vFruits 출력
    for (int i = 0; i < vFruits.size(); i++) {
      // if문으로 "포도"가 포함되어있다면 지우도록 설정
      if (vFruits.contains("포도")) {
        vFruits.remove("포도");
      }
      System.out.print(vFruits.get(i) + " ");
    }
  }

  void methodB() {
    // 좋아하는 과일만 골라서 Vector에 담기
    String fruits[] = { "키위", "포도", "사과", "토마토", "메론", "파인애플", "바나나", "복숭아" };
    Vector<String> vFruits = new Vector<>();
    for (int i = 0; i < fruits.length; i++) {
      vFruits.add(i, fruits[i]);
    }

    // vFruits 출력
    for (int i = 0; i < vFruits.size(); i++) {

      if (vFruits.contains("사과") || vFruits.contains("파인애플")) {
        vFruits.remove("사과");
        vFruits.remove("파인애플");
      }
      System.out.print(vFruits.get(i) + " ");
    }
  }

  void methodC() {
    // 과일가게의 진열 상품
    String fruits[] = { "키위", "포도", "사과", "토마토", "메론", "파인애플", "바나나", "복숭아" };
    // 내가 사고싶은 과일이름
    String myFruits[] = { "딸기", "체리", "바나나", "살구", "키위" };
    // 구입할 과일만 골라서 Vector에 담기
    Vector<String> vFruits = new Vector<>();
    for (int i = 0; i < fruits.length; i++) {
      for (int j = 0; j < myFruits.length; j++) {
        if (fruits[i].equals(myFruits[j])) {
          vFruits.add(fruits[i]);
        }
      }
    } // end of for
    // 구매한 과일 출력
    System.out.print("구매한 과일: ");
    for (String f : vFruits) {
      System.out.print(f + " ");
    }
  }

  public static void main(String[] args) {
    Vector4 v4 = new Vector4();
    v4.methodA();
    System.out.println("\n=====");
    v4.methodB();
    System.out.println("\n=====");
    v4.methodC();
  }
}

// 키위 토마토 사과 
// =====
// 키위 포도 토마토 메론 바나나 복숭아
// =====
// 구매한 과일: 키위 바나나

 

package dev_java.tables;

import java.util.Arrays;
import java.util.Scanner;
import java.util.Vector;

public class Vector5 {
  Vector<String[]> vDepts = new Vector<>();
  String deptsArr[][] = { { "10", "개발부", "서울", "010-123-4567" },
      { "20", "인사부", "인천", "010-234-5678" },
      { "30", "총무부", "부산", "010-345-6789" }
  };

  // 배열을 벡터에 넣는 메소드
  void vSet() {
    for (int i = 0; i < deptsArr.length; i++) {
      vDepts.add(deptsArr[i]);
    }
  }

  // 배열을 출력하는 메소드
  void vPrint() {
    for (int i = 0; i < vDepts.size(); i++) {
      System.out.println(Arrays.toString((vDepts.get(i))));
    }
    System.out.println("==========");
  }

  // 스캐너로 입력된 번호의 행을 삭제하는 메소드
  void vRemove() {
    Scanner s = new Scanner(System.in);
    System.out.print("삭제하고싶은 배열 번호 입력: ");
    int i = s.nextInt();
    if (i <= vDepts.size()) {
      System.out.println("삭제된 배열:" + Arrays.toString((vDepts.get(i - 1))));
      vDepts.remove(i - 1);
    } else {
      System.out.println("잘못된 입력입니다! 올바른 범위의 숫자를 입력해주세요.");
    }
    s.close();
    System.out.println("==========");
  }

  // 스캐너로 입력된 부서번호의 행을 삭제하는 메소드
  void vRemoveDeptNo(String num) {
    String[] oneRow = new String[vDepts.size()];
    for (int i = 0; i < vDepts.size(); i++) {
      oneRow = vDepts.get(i); // vDepts을 oneRow에 담음
      if (num.equals(oneRow[0])) { // 만약 부서번호와 입력값이 같다면
        vDepts.remove(i); // 그 행을 지움
      }
    }
    if (!(num.equals(oneRow[0]))) {
      System.out.println("해당하는 부서 번호가 없습니다.");
    }
  }

  public static void main(String[] args) {
    Vector5 v5 = new Vector5();
    v5.vSet();
    v5.vPrint();

    // 방법1-행번호로 지우기
    v5.vRemove();
    v5.vPrint();

    // 방법2-부서번호로 지우기
    Scanner s = new Scanner(System.in);
    System.out.print("삭제할 부서번호: ");
    String num = s.nextLine();
    v5.vRemoveDeptNo(num);
    s.close();
    v5.vPrint();

  }
}

 

package dev_java.tables;

import java.util.Scanner;
import java.util.Vector;

public class Vector6 {
  Vector<String[]> vDepts = new Vector<>();
  String depts[][] = { { "10", "개발부", "서울", "010-123-4567" },
      { "20", "인사부", "인천", "010-234-5678" },
      { "30", "총무부", "부산", "010-345-6789" }
  };

  void initVector() {
    for (int i = 0; i < depts.length; i++) {
      vDepts.add(depts[i]); // 벡터에 담기는 것은 1차배열(컬럼의 수는 바뀔 수 있다.)
    }
  }

  void initVectorPrint() {
    for (int i = 0; i < vDepts.size(); i++) {
      String[] oneRow = vDepts.get(i);
      // System.out.println(oneRow.toString()); // 주소번지 출력
      for (int j = 0; j < oneRow.length; j++) {
        System.out.print(oneRow[j] + " ");
      }
      System.out.println();
    }
  }

  public static void main(String[] args) {
    Vector6 v6 = new Vector6();
    // initVector 메소드를 경유하지 않았으므로 size는 0이다
    v6.initVector();
    System.out.println(v6.vDepts.size()); // 메소드를 경유한 후 0 -> 3
    // vDepts.get(0) -> {"10", "개발부", "서울", "010-123-4567"}
    v6.initVectorPrint();

    System.out.print("삭제하고자 하는 부서번호를 입력하세요 ==> ");
    Scanner s = new Scanner(System.in);
    int deptNo = s.nextInt();
    for (int i = 0; i < v6.vDepts.size(); i++) {
      String[] oneRow = v6.vDepts.get(i);
      if (deptNo == Integer.parseInt(oneRow[0])) {
        v6.vDepts.remove(i);
      }
    }
    s.close();

    // 삭제한 뒤 남은 정보 출력
    v6.initVectorPrint();
  }
}

 

객체 배열

객체를 저장하는 배열

배열의 자료형을 클래스명(사용자 정의 클래스)로 지정하여 활용함

package dev_java.week1_3;

public class Book {
  // 전역변수 책번호, 제목, 가격 선언
  int bookNum;
  String bookTitle;
  int bookPrice;

  public Book(int bookNum, String bookTitle, int bookPrice) { // 책번호, 제목, 가격을 필요로하는 생성자 Book
    this.bookNum = bookNum; // 전역변수와 파라미터 안의 지역변수를 일치시킴
    this.bookTitle = bookTitle;
    this.bookPrice = bookPrice;
    bookInfo(); // 생성자를 호출하면 자동으로 정보 출력
  }

  public void bookInfo() {
    System.out.println("번호: " + bookNum + "\n제목: " + bookTitle + "\n가격: " + bookPrice);
    System.out.println();
  }

  public static void main(String[] args) {
    Book book[] = new Book[3]; // 객체 배열 선언 및 생성을 했지만 실제 객체가 만들어지진 않음!

    book[0] = new Book(001, "이것이 자바다", 50000); // Book객체가 실제로 생성됨!
    book[1] = new Book(002, "자바의 정석", 45000);
    book[2] = new Book(003, "점프 투 자바", 40000);

    for (Book b : book) {
      System.out.println(b);
    }
  }
}

// 번호: 1
// 제목: 이것이 자바다
// 가격: 50000

// 번호: 2
// 제목: 자바의 정석
// 가격: 45000

// 번호: 3
// 제목: 점프 투 자바
// 가격: 40000

// dev_java.week1_3.Book@5e91993f
// dev_java.week1_3.Book@1c4af82c
// dev_java.week1_3.Book@379619aa

 

package dev_java.tables;

class T1 {
  int i = 1;
}

public class T1Main {
  public static void main(String[] args) {
    T1[] t1s = new T1[3];
    T1 t1 = new T1();
    t1s[0] = t1;
    System.out.println(t1); // t1생성, 주소번지@4517d9a3

    t1 = new T1();
    t1s[1] = t1;
    System.out.println(t1); // t1생성, 주소번지@372f7a8d

    t1 = new T1();
    t1s[2] = t1;
    System.out.println(t1); // t1생성, 주소번지@2f92e0f4
    System.out.println("=====");

    for (T1 t : t1s) {
      System.out.println(t + " ");
    }
  }
}

 

package dev_java.tables;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Button1 extends JFrame {
  // 선언부
  String jbtn_label[] = { "입력", "수정", "삭제" };
  JPanel jp_north = new JPanel();
  JPanel jp_south = new JPanel();
  JButton jbtn_ins = new JButton(jbtn_label[0]); // 버튼 직접 성성
  JButton jbtn_upd = new JButton(jbtn_label[1]);
  JButton jbtn_del = new JButton(jbtn_label[2]);
  JButton[] jbtns = new JButton[3]; // 버튼 객체배열로 생성

  // 생성자
  public Button1() {
    initDisplay();
  }

  // 화면그리기
  public void initDisplay() {
    jp_north.add(jbtn_ins); // 버튼 직접 생성
    jp_north.add(jbtn_upd);
    jp_north.add(jbtn_del);
    for (int i = 0; i < jbtns.length; i++) { // 버튼 객체배열로 생성
      jbtns[i] = new JButton(jbtn_label[i]);
      jp_south.add(jbtns[i]);
    }
    this.add("North", jp_north);
    this.add("South", jp_south);
    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    this.setSize(300, 400);
    this.setVisible(true);
  }

  // 메인메소드
  public static void main(String[] args) {
    new Button1();
  }
}

 

package dev_java.tables;

import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Button2 extends JFrame {
  // 선언부
  String jbtn_label[] = { "입력", "수정", "삭제" };
  JPanel jp_north = new JPanel();
  JButton jbtn_ins = new JButton(jbtn_label[0]);
  JButton jbtn_upd = new JButton(jbtn_label[1]);
  JButton jbtn_del = new JButton(jbtn_label[2]);
  Vector<JButton> vbtns = new Vector<>(jbtn_label.length); // 버튼 벡터로 생성
  JButton[] jbtns = { jbtn_ins, jbtn_upd, jbtn_del };

  // 생성자
  public Button2() {
    initDisplay();
  }

  // 화면그리기
  public void initDisplay() {
    for (int i = 0; i < jbtns.length; i++) { // 버튼 벡터로 생성
      vbtns.add(jbtns[i]);
      jp_north.add(vbtns.get(i));
    }
    this.add("North", jp_north);
    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    this.setSize(300, 400);
    this.setVisible(true);
  }

  // 메인메소드
  public static void main(String[] args) {
    new Button2();
  }
}

 

package dev_java.tables;

import java.util.Vector;

public class Vector7 {
  public static void main(String[] args) {
    String depts[][] = { { "10", "개발부", "서울" },
        { "20", "인사부", "인천" },
        { "30", "총무부", "부산" }
    };
    DeptVO[] dVOS = new DeptVO[depts.length]; // DeptVO타입 객체배열 dVOS선언 및 생성
    Vector<DeptVO> vDepts = new Vector<>(); // DeptVO타입 벡터 vDepts선언 및 생성

    DeptVO dvo = new DeptVO(10, "개발부", "서울"); // DeptVO생성자에 맞춰 부서번호, 이름, 지역 입력
    dVOS[0] = dvo; // 그 값을 객체배열 dVOS에 입력
    vDepts.add(dvo); // 그 값을 벡터 vDepts에 입력
    dvo = new DeptVO(20, "인사부", "인천");
    dVOS[1] = dvo;
    vDepts.add(dvo);
    dvo = new DeptVO(30, "총무부", "부산");
    dVOS[2] = dvo;
    vDepts.add(dvo);

    // 객체배열 dVOS 출력
    for (int i = 0; i < dVOS.length; i++) {
      System.out.println(dVOS[i].getDeptNo() + " " + dVOS[i].getDeptName() + " " + dVOS[i].getDeptLoc());
    }
    System.out.println();

    // 벡터 DeptVO 출력
    for (int i = 0; i < vDepts.size(); i++) {
      DeptVO temp = vDepts.get(i);
      System.out.println(temp.getDeptNo() + " " + temp.getDeptName() + " " + temp.getDeptLoc());
    }
  }
}

// 10 개발부 서울
// 20 인사부 인천
// 30 총무부 부산

// 10 개발부 서울
// 20 인사부 인천
// 30 총무부 부산

 

package dev_java.tables;

public class DeptVO {
  private int deptNo; // 같은 클래스 내에서만 접근 가능
  private String deptName;
  private String deptLoc;

  // 디폴트 생성자는 필요없지만 파라미터가 있는 생성자가 하나라도 선언되면
  // 제공하는 것을 원칙으로 한다
  public DeptVO() {
  }

  public DeptVO(int deptNo, String deptName, String deptLoc) { // 부서 번호, 이름, 위치를 파라미터로 요구하는 생성자
    this.deptNo = deptNo; // this로 전역변수와 파라미터의 지역변수를 연결
    this.deptName = deptName;
    this.deptLoc = deptLoc;
  }

//getter, setter를 이용해 private인 변수 사용 가능
  public int getDeptNo() {
    return this.deptNo;
  }

  public void setDeptNo(int deptNo) {
    this.deptNo = deptNo;
  }

  public String getDeptName() {
    return this.deptName;
  }

  public void setDeptName(String deptName) {
    this.deptName = deptName;
  }

  public String getDeptLoc() {
    return this.deptLoc;
  }

  public void setDeptLoc(String deptLoc) {
    this.deptLoc = deptLoc;
  }
}

 

package dev_java.tables;

import java.util.Vector;

public class DeptList {
  Vector<DeptVO> vDepts = new Vector<>(); // 벡터 vDepts 선언 및 생성(초기화x)

  // 부서 등록-성공하면 1, 실패하면 0 반환
  int deptInsert(DeptVO pdVO) {
    int result = -1;
    boolean isOk = vDepts.add(pdVO); // true
    result = isOk ? 1 : 0; // isOk가 true이니 1 반환
    return result;
  }

  // DeptVO를 쓰지 않았을 경우 파라미터가 길어짐
  // int deptInsert(int deptNo, String deptName, String deptLoc) {
  // }

  // 부서 수정 -> 부서명과 지역만 수정가능
  int deptUpdate(DeptVO pdVO) {
    int result = -1;
    boolean isOk = false;
    for (int i = 0; i < vDepts.size(); i++) {
      DeptVO editVO = vDepts.get(i); // 변수를 안쓰고 vDepts.get(i).getDeptNo()같이 도트연산자를 반복해서쓰면,
      // 코드가 길어졌을 때 NullPointerException 잡기 어려워짐!
      if (pdVO.getDeptNo() == editVO.getDeptNo()) {
        isOk = vDepts.set(i, pdVO) != null; // 해당 값이 null이 아니면 true
      }
    }
    result = isOk ? 1 : 0;
    return result;
  }

  // 부서 삭제
  int deptDelete(int deptNo) {
    int result = -1;
    boolean isOk = false;
    for (int i = 0; i < vDepts.size(); i++) {
      DeptVO delVO = vDepts.get(i);
      if (deptNo == delVO.getDeptNo()) {
        isOk = vDepts.remove(delVO);
      }
    }
    result = isOk ? 1 : 0;
    return result;
  }

  // 부서 상세정보
  String deptView(int deptNo) {
    String result = null;
    for (int i = 0; i < vDepts.size(); i++) {
      DeptVO infoVO = vDepts.get(i);
      if (deptNo == infoVO.getDeptNo()) {
        result = deptNo + "번 부서 정보: " + infoVO.getDeptName() + ", " + infoVO.getDeptLoc();
      }
    }
    return result;
  }
  
  // 전체 조회
  void getDeptList() {
    for (int i = 0; i < vDepts.size(); i++) {
      DeptVO allVO = vDepts.get(i);
      System.out.println(allVO.getDeptNo() + ", " + allVO.getDeptName() + "," + allVO.getDeptLoc());
    }
    System.out.println();
  }

  // 부서세팅
  void setDdeptList() {
    DeptVO dvo = new DeptVO(10, "개발부", "서울");
    vDepts.add(dvo);
    dvo = new DeptVO(20, "인사부", "인천");
    vDepts.add(dvo);
    dvo = new DeptVO(30, "총무부", "부산");
    vDepts.add(dvo);
  }

  public static void main(String[] args) {
    DeptList deptList = new DeptList();
    deptList.setDdeptList(); // 부서 세팅
    deptList.getDeptList(); // 전체 조회

    DeptVO dvo = new DeptVO(40, "자재부", "대전");
    deptList.deptInsert(dvo); // 부서 등록
    deptList.getDeptList();

    System.out.println(deptList.deptView(10)); // 10번부서 상세정보 출력
    System.out.println();

    deptList.deptDelete(10);// 10번 부서 삭제
    deptList.getDeptList();

    dvo = new DeptVO(20, "자재관리부", "수원");
    deptList.deptUpdate(dvo); // 부서 수정
    deptList.getDeptList();
  }
}

// 10, 개발부,서울
// 20, 인사부,인천
// 30, 총무부,부산

// 10, 개발부,서울
// 20, 인사부,인천
// 30, 총무부,부산
// 40, 자재부,대전

// 10번 부서 정보: 개발부, 서울

// 20, 인사부,인천
// 30, 총무부,부산
// 40, 자재부,대전

// 20, 자재관리부,수원
// 30, 총무부,부산
// 40, 자재부,대전

 

package dev_java.example.ex221215;

// ***연습문제2***
// -10에서 10사이의 정수 10개를 랜덤하게 채번하여 음수와 양수의 합계를 구하는 프로그램을 작성하시오.
// *출력)
// *배열 : 9 -2 -3 8 0 -3 -8 -6 -2 0
// *음수합 : -24
// *양수합 : 17
public class Exam2_221215_1 {
  int users[] = null;
  int plus;
  int minus;

  // size를 넣으면 그만큼의 랜덤한 숫자가 나오는 메소드
  void setArray(int size) {
    users = new int[size];
    for (int i = 0; i < size; i++) {
      users[i] = (int) (Math.random() * 21) - 10;
      System.out.print(users[i] + " ");
    }
    System.out.println();
  }

  // 각 양수, 음수끼리 더해주는 메소드
  void total() {
    plus = 0;
    minus = 0;
    for (int i = 0; i < users.length; i++) {
      if (users[i] < 0) {
        minus += users[i];
      } else if (users[i] > 0) {
        plus += users[i];
      }
    }
  }

  // 더해진 양수, 음수를 출력하는 메소드
  void result() {
    System.out.println("음수합: " + minus);
    System.out.println("양수합: " + plus);
  }

  public static void main(String[] args) {
    Exam2_221215_1 ex2 = new Exam2_221215_1();
    ex2.setArray(10);
    ex2.total();
    ex2.result();
  }
}

 

package dev_java.example.ex221215;

// ***연습문제3***
// 0 부터 9사이의 임의의 수를 100개를 채번하여 한 줄에 10개씩
//   출력하고 그 숫자의 빈도수를 계산하여 출력하시오
// 원본 : 0 1 2 3 4 5 6 7 8 9
//        2 5 6 8 7 8 9 0 1 1
//        5
//        3
//        3
//        7
//        9
//        2
//        0 4 5 6 6 7 8 8 9 9
// 숫자 : 0 1 2 3 4 5 6 7 8 9
// 개수 : 10 9 18 11 7 9 15 14 7 5 
public class Exam3_221215_1 {
  int counts[] = new int[10];
  int datas[] = new int[100];

  // 100개 변수 초기화
  int[] initArray(int datas[], int size) {
    int i;
    for (i = 0; i < datas.length; i++) {
      datas[i] = (int) (Math.random() * 10);
    }
    dataPrint(datas);
    return datas;
  }

  // 변수 출력
  void dataPrint(int[] datas) {
    for (int i = 0; i < datas.length; i++) {
      System.out.print(datas[i]);
      if (i % 10 == 9) {
        System.out.println();
      }
    }
  }

  // 빈도검사 배열에 들어있는 숫자를 증가시킴
  void numberCount(int[] datas) {
    int index = 0;
    for (int i = 0; i < 100; i++) {
      index = datas[i];
      counts[index]++;
    }
  }

  public static void main(String[] args) {
    Exam3_221215_1 ex3 = new Exam3_221215_1();
    ex3.initArray(ex3.datas, 100);
    ex3.numberCount(ex3.datas);
    for (int i = 0; i < ex3.counts.length; i++) {
      System.out.print(ex3.counts[i] + " ");
    }
  }
}

 

package dev_java.tables;

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

// JDialog도 디폴트가 BorderLayout임-JP_center를 중앙에 배치
public class JTable7Dialog extends JDialog {
  // 선언부
  JPanel jp_center = new JPanel();
  JScrollPane jsp_center = new JScrollPane(jp_center);
  JPanel jp_south = new JPanel();
  JLabel jlb_deptNo = new JLabel("부서번호");
  JTextField jtf_deptNo = new JTextField(10);
  JLabel jlb_deptName = new JLabel("부서명");
  JTextField jtf_deptName = new JTextField(20);
  JLabel jlb_deptLoc = new JLabel("지역");
  JTextField jtf_deptLoc = new JTextField(20);
  // jp_south속지에 버튼 붙임
  JButton jbtn_save = new JButton("저장");
  JButton jbtn_close = new JButton("닫기");

  // 생성자
  public JTable7Dialog() {
    initDisplay();
  }

  // 화면그리기
  public void initDisplay() {
    // 레이아웃 설정
    jp_center.setLayout(null);
    jp_south.setLayout(new FlowLayout(FlowLayout.RIGHT));
    jlb_deptNo.setBounds(20, 20, 80, 20);
    jtf_deptNo.setBounds(120, 20, 80, 20);
    jlb_deptName.setBounds(20, 45, 100, 20);
    jtf_deptName.setBounds(120, 45, 150, 20);
    jlb_deptLoc.setBounds(20, 70, 100, 20);
    jtf_deptLoc.setBounds(120, 70, 150, 20);
    jp_center.add(jlb_deptNo);
    jp_center.add(jtf_deptNo);
    jp_center.add(jlb_deptName);
    jp_center.add(jtf_deptName);
    jp_center.add(jlb_deptLoc);
    jp_center.add(jtf_deptLoc);
    jp_south.add(jbtn_save);
    jp_south.add(jbtn_close);
    this.add("Center", jsp_center);
    this.add("South", jp_south);
    this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    this.setSize(400, 360);
    this.setVisible(true);
  }

  // 메인
  public static void main(String[] args) {
    new JTable7Dialog();
  }
}

댓글