Top 34 자바 미니 프로젝트 The 89 Detailed Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 자바 미니 프로젝트 on Google, you do not find the information you need! Here are the best content compiled and compiled by the toplist.prairiehousefreeman.com team, along with other related topics such as: 자바 미니 프로젝트 자바초보프로젝트주제, 자바 미니 프로젝트 추천, Java 프로젝트 주제, 자바 팀 프로젝트 주제 추천, 자바 미니프로젝트 게임, 자바 스윙 프로젝트, 자바 은행 프로젝트, 자바 커피자판기


Java Mini Project 자바 미니프로젝트
Java Mini Project 자바 미니프로젝트


자바 미니 프로젝트 – 성적 조회 프로그램 | CMS world

  • Article author: parkminseob.github.io
  • Reviews from users: 31773 ⭐ Ratings
  • Top rated: 3.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 자바 미니 프로젝트 – 성적 조회 프로그램 | CMS world 그리고 회원가입을 통해 로그인하여 학생정보 관리시스템에 접속할 수 있도록 구현했다. package mini.project; import java.util.ArrayList; import … …
  • Most searched keywords: Whether you are looking for 자바 미니 프로젝트 – 성적 조회 프로그램 | CMS world 그리고 회원가입을 통해 로그인하여 학생정보 관리시스템에 접속할 수 있도록 구현했다. package mini.project; import java.util.ArrayList; import … 성적조회 프로그램
  • Table of Contents:

Skip links

App클래스

TeacherLogin 클래스

Teacher 클래스

Student클래스

StudentHandler 클래스

Prompt클래스

후기

htmlcss – Css 레이아웃

htmlcss – CSS박스 모델

htmlcss – 색상과 배경을 위한 스타일

htmlcss – 텍스트 관련 태그들

자바 미니 프로젝트 - 성적 조회 프로그램 | CMS world
자바 미니 프로젝트 – 성적 조회 프로그램 | CMS world

Read More

Java와 SQL을 이용한 미니프로젝트

  • Article author: velog.io
  • Reviews from users: 35813 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Java와 SQL을 이용한 미니프로젝트 1차 미니프로젝트 – 단어암기게임. … 자바와 데이터베이스를 활용하여 데이터의 입출력 및 수정 삭제(crud)를 이해하고 활용. …
  • Most searched keywords: Whether you are looking for Java와 SQL을 이용한 미니프로젝트 1차 미니프로젝트 – 단어암기게임. … 자바와 데이터베이스를 활용하여 데이터의 입출력 및 수정 삭제(crud)를 이해하고 활용. 1차 미니프로젝트 – 📖단어암기게임⏰
  • Table of Contents:

Mini-Project

1차 미니프로젝트

Java와 SQL을 이용한 미니프로젝트
Java와 SQL을 이용한 미니프로젝트

Read More

(JAVA) 미니 프로젝트 – 자판기 구현하기 :: 혀래이의 개발이야기

  • Article author: h-coding.tistory.com
  • Reviews from users: 6864 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about (JAVA) 미니 프로젝트 – 자판기 구현하기 :: 혀래이의 개발이야기 (JAVA) 미니 프로젝트 – 자판기 구현하기. 혀래이 2021. 7. 2. 15:36 … import java.util.Scanner;. public Project {. public static final int MAX = 10; … …
  • Most searched keywords: Whether you are looking for (JAVA) 미니 프로젝트 – 자판기 구현하기 :: 혀래이의 개발이야기 (JAVA) 미니 프로젝트 – 자판기 구현하기. 혀래이 2021. 7. 2. 15:36 … import java.util.Scanner;. public Project {. public static final int MAX = 10; … 1. 명세 – 자판기 프로그램을 구현한다. 자판기의 종류는 임의로 결정하며 아래와 같은 방식을 구현한다. 자판기 소개와 함께 자판기를 출력한다. ex) 1. 커피 2.주스 3.콜라 돈을 입력받는다. 번호를 입력하면..개발자가 되고싶은 개발 새내기의 이야기
  • Table of Contents:

TAG

관련글 관련글 더보기

인기포스트

티스토리툴바

(JAVA) 미니 프로젝트 - 자판기 구현하기 :: 혀래이의 개발이야기
(JAVA) 미니 프로젝트 – 자판기 구현하기 :: 혀래이의 개발이야기

Read More

자바(JAVA) – 개인 프로젝트 : 구구단 게임 — 개발이 하고 싶어요

  • Article author: iu-corner.tistory.com
  • Reviews from users: 14001 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 자바(JAVA) – 개인 프로젝트 : 구구단 게임 — 개발이 하고 싶어요 자바(JAVA) – 개인 프로젝트 : 구구단 게임. 2020. 11. 11. … [미니 프로젝트1] 운동 관리 프로그램 주제 선정 – 기록 일지 1 (2), 2020.10.31 … …
  • Most searched keywords: Whether you are looking for 자바(JAVA) – 개인 프로젝트 : 구구단 게임 — 개발이 하고 싶어요 자바(JAVA) – 개인 프로젝트 : 구구단 게임. 2020. 11. 11. … [미니 프로젝트1] 운동 관리 프로그램 주제 선정 – 기록 일지 1 (2), 2020.10.31 … 구구단 게임 구구단이 랜덤으로 나와 사용자가 문제를 맞추는 게임이다. 아쉬운 것은 타이머 기능을 이용해 난이도를 주면 더 좋을텐데 아직 구현하지 못함. hard 난이도는 3초 이내로 입력 normal 난이도는 5초..
  • Table of Contents:

티스토리

공지사항

블로그 메뉴

인기 글

최근 글

최근 댓글

태그

구구단 게임

티스토리툴바

자바(JAVA) - 개인 프로젝트 :  구구단 게임 — 개발이 하고 싶어요
자바(JAVA) – 개인 프로젝트 : 구구단 게임 — 개발이 하고 싶어요

Read More

[미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램)

  • Article author: earthconquest.tistory.com
  • Reviews from users: 38278 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램) [미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램). JiHooney 2020. 12. … PreparedStatement; import java.sql. …
  • Most searched keywords: Whether you are looking for [미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램) [미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램). JiHooney 2020. 12. … PreparedStatement; import java.sql. 1. 기획 -Use Case Diagram -Sequence Diagram -E-R Diagram -Wire Frame 2. 코딩 구현 -클래스 2.1 데이터 베이스 설계 -데이터 베이스 DDL –데이터베이스 생성 create database uiproject; use uip..
  • Table of Contents:

지구정복

[미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램) 본문

티스토리툴바

[미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램)
[미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램)

Read More

GitHub – hei-jung/FoodOrderSystem: Java 미니 프로젝트

  • Article author: github.com
  • Reviews from users: 29288 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about GitHub – hei-jung/FoodOrderSystem: Java 미니 프로젝트 Java 미니 프로젝트. Contribute to hei-jung/FoodOrderSystem development by creating an account on GitHub. …
  • Most searched keywords: Whether you are looking for GitHub – hei-jung/FoodOrderSystem: Java 미니 프로젝트 Java 미니 프로젝트. Contribute to hei-jung/FoodOrderSystem development by creating an account on GitHub. Java 미니 프로젝트. Contribute to hei-jung/FoodOrderSystem development by creating an account on GitHub.
  • Table of Contents:

Latest commit

Git stats

Files

READMEmd

1 주제

2 기능

3 구현 방법

About

Releases

Packages 0

Languages

Footer

GitHub - hei-jung/FoodOrderSystem: Java 미니 프로젝트
GitHub – hei-jung/FoodOrderSystem: Java 미니 프로젝트

Read More

첫 미니 프로젝트 : 영화 OTT 플랫폼

  • Article author: eungeun506.tistory.com
  • Reviews from users: 24283 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 첫 미니 프로젝트 : 영화 OTT 플랫폼 국비 수업을 들은지 두 달이 다 되어가는 와중에, 오직 자바와 콘솔 입출력 기능만 갖고 24시간동안 프로그램을 짜보는 프로젝트 시간을 가졌다. …
  • Most searched keywords: Whether you are looking for 첫 미니 프로젝트 : 영화 OTT 플랫폼 국비 수업을 들은지 두 달이 다 되어가는 와중에, 오직 자바와 콘솔 입출력 기능만 갖고 24시간동안 프로그램을 짜보는 프로젝트 시간을 가졌다. 국비 수업을 들은지 두 달이 다 되어가는 와중에, 오직 자바와 콘솔 입출력 기능만 갖고 24시간동안 프로그램을 짜보는 프로젝트 시간을 가졌다. 이 글을 24시간 동안 둘이서 한 팀원과 둘이서 코딩을 한 결과물이..
  • Table of Contents:

전체적인 컨셉

구현된 기능

화면

클래스

miniproject 패키지

miniprojectutil 패키지

miniprojectHandler 패키지

miniprojectdomain 패키지

로그아웃 상태에서의 클래스 관계

느낀점

‘국비 교육’ Related Articles

첫 미니 프로젝트 : 영화 OTT 플랫폼
첫 미니 프로젝트 : 영화 OTT 플랫폼

Read More


See more articles in the same category here: https://toplist.prairiehousefreeman.com/blog.

자바 미니 프로젝트 – 성적 조회 프로그램

성적조회 프로그램

24시간 미니 해커톤을 진행하며 간단한 성적조회 프로그램을 만들었다.

간단하지만 아직 프로그래밍 레벨1인 나에겐 어려웠던 CRUD구현.. 그리고 내가 구상했던 3가지 새로운 기능(1등출력, 꼴찌출력, 선생님 코멘트) 중 1가지는 구현하지 못했지만 나름대로 최선을 다했다. 몸이 아프지 않았다면 좀 더 집중력있게 만들 수 있을텐데 하는 아쉬움도 남지만.. 앞으로도 내게 남은 기회가 많으니까! 적당히 만족하기로 했다.

App클래스

프로그램을 시작하면 가장 먼저 보이는 화면. 1번을 누르면 선생님 로그인 창으로 이동한다.

public class App { public static void main ( String [] args ) { Member member = new Member (); loop: while ( true ) { System . out . println ( “[고등학교 성적관리시스템 메인]” ); System . out . printf ( “[1] 선생님 로그인 [0] 종료

” ); int command = Prompt . inputInt ( “명령> ” ); switch ( command ) { case 1 : member . System (); break ; case 0 : System . out . println ( “프로그램 종료” ); break loop ; default : System . out . println ( “잘못된 명령입니다.” ); } System . out . println (); } } }

TeacherLogin 클래스

필드는 private로 막고 게터세터를 썼다. add()메서드로 회원가입을 할 수 있게 구현했다.

package mini.project ; public class TeacherLogin { private String Id ; private String Password ; private String Name ; public TeacherLogin ( String Id , String Password , String Name ) { super (); this . Id = Id ; this . Password = Password ; this . Name = Name ; } public String getId () { return Id ; } public void setId ( String Id ) { this . Id = Id ; } public String getPassword () { return Password ; } public void setPassword ( String Password ) { this . Password = Password ; } public String getName () { return Name ; } public void setName ( String Name ) { this . Name = Name ; } @Override public String toString () { return “ID : ” + Id + ” Password : ” + Password + ” Name : ” + Name ; } public void add () { TeacherLogin t = new TeacherLogin ( Id , Password , Name ); t . Id = Prompt . inputString ( “Id : ” ); t . Password = Prompt . inputString ( “Password : ” ); t . Name = Prompt . inputString ( “Name : ” ); } }

Teacher 클래스

기본 관리자를 생성자로 만들어놓았다. 그리고 회원가입을 통해 로그인하여 학생정보 관리시스템에 접속할 수 있도록 구현했다.

package mini.project ; import java.util.ArrayList ; import java.util.Iterator ; import java.util.List ; import java.util.Scanner ; public class Teacher { List < TeacherLogin > teachers = new ArrayList <>(); Scanner scanner = new Scanner ( System . in ); public Teacher () { teachers . add ( new TeacherLogin ( “admin” , “1234” , “Kim” )); } public void System () { int num = 0 ; while (( num = menu ()) != 0 ) { switch ( num ) { case 1 : TeacherLogin (); break ; case 2 : TeacherJoin (); break ; case 3 : TeacherList (); } } } private void TeacherJoin () { String Id = Prompt . inputString ( “ID : ” ); String Password = Prompt . inputString ( “Password : ” ); String Password2 = Prompt . inputString ( “Password Confirm : ” ); String Name = Prompt . inputString ( “Name : ” ); if ( TestId ( Id )) { System . out . println ( “중복된 ID입니다.” ); } else if ( Password . equals ( Password2 )) { teachers . add ( new TeacherLogin ( Id , Password , Name )); System . out . println ( “회원가입이 완료되었습니다.” ); } else { System . out . println ( “비밀번호를 다시 입력하시오.” ); } } private void TeacherLogin () { while ( true ) { String Id = Prompt . inputString ( “ID : ” ); String Password = Prompt . inputString ( “Password : ” ); TeacherLogin member = FindId ( Id ); StudentHandler stu = new StudentHandler (); if ( member == null ) { System . out . println ( “입력하신 아이디가 일치하지 않습니다.” ); System . out . println ( “다시 입력하시오.” ); } else if ( member . getPassword (). equals ( Password )) { System . out . println ( “학생정보관리시스템에 접속하였습니다.” ); stu . StudentSystem (); break ; } else { System . out . println ( “입력하신 패스워드가 일치하지 않습니다.” ); System . out . println ( “다시 입력하시오.” ); } } } public boolean TestId ( String Id ) { boolean check = true ; TeacherLogin member = FindId ( Id ); if ( member == null ) check = false ; return check ; } private TeacherLogin FindId ( String Id ) { for ( TeacherLogin memberLogin : teachers ) { if ( memberLogin . getId (). equals ( Id )) { return memberLogin ; } } return null ; } public int menu () { return Prompt . inputInt ( “[1]로그인 [2]회원가입 [3]전체회원 [0]종료” ); } public void TeacherList () { System . out . println ( “[관리자 목록]” ); Iterator < TeacherLogin > ite = teachers . iterator (); while ( ite . hasNext ()) { System . out . println ( ite . next () + ” ” ); } } }

Student클래스

필드를 private로 막고 게터세터를 사용한 것은 위 Teacher클래스와 동일하다.

다만 Student클래스에서 국영수 점수의 총합인 sum과 평균인 aver은 메서드를 용도에 맞게 수정해 주었다.

package mini.project ; import java.sql.Date ; public class Student { private int no ; private String name ; private int gender ; private String grade ; private int kor ; private int eng ; private int math ; private int sum ; private float aver ; private String comment ; private Date registeredDate ; private static final int LENGTH = 5 ; public String getComment () { return comment ; } public void setComment ( String comment ) { this . comment = comment ; } public int getSum () { return sum ; } public void setSum ( int kor , int eng , int math ) { sum = kor + eng + math ; aver = sum / 3 . f ; } public void setAver ( float aver ) { this . aver = aver ; } public float getAver () { return aver ; } public int getNo () { return no ; } public void setNo ( int no ) { this . no = no ; } public String getName () { return name ; } public void setName ( String name ) { this . name = name ; } public int getGender () { return gender ; } public void setGender ( int gender ) { this . gender = gender ; } public String getGrade () { return grade ; } public void setGrade ( String grade ) { this . grade = grade ; } public int getKor () { return kor ; } public void setKor ( int kor ) { this . kor = kor ; } public int getEng () { return eng ; } public void setEng ( int eng ) { this . eng = eng ; } public int getMath () { return math ; } public void setMath ( int math ) { this . math = math ; } public Date getRegisteredDate () { return registeredDate ; } public void setRegisteredDate ( Date registeredDate ) { this . registeredDate = registeredDate ; } public static int getLength () { return LENGTH ; } }

StudentHandler 클래스

학생 정보와 성적을 입력받고 목록조회, 상세조회, 정보수정, 정보삭제와 같은 기본적인 CRUD를 구현했다. 그리고 이 프로그램만의 특징인 1등과 꼴찌, 선생님 코멘트 기능을 추가했다.

1등 출력은 학년 상관 없이 국영수 총합으로만 따져서 출력하도록 했다.

꼴찌 출력은 기능이 제대로 구현이 되지 않았다. 추측을 해보자면 정보를 추가하지 않은 인덱스의 값이 다 0으로 초기화 되었기에 무조건 최소값이 0으로 출력되는 듯 하다. 아직은 해결 방법을 찾지 못했다.

선생님 코멘트는 학생 번호를 통해 입력하고, 학생 상세 조회에서 볼 수 있도록 구현했다.

package mini.project ; import java.sql.Date ; import java.util.ArrayList ; import java.util.Iterator ; import java.util.List ; public class StudentHandler { List < Student > studentList = new ArrayList < Student >(); public void StudentSystem () { int num = 0 ; loop: while (( num = StudentMenu ()) != 0 ) { switch ( num ) { case 1 : add (); break ; case 2 : scoreAdd (); break ; case 3 : studentList (); break ; case 4 : StudentDetail (); break ; case 5 : studentUpdate (); break ; case 6 : studentDelete (); break ; case 7 : FirstPlace (); break ; case 8 : BottomPlace (); break ; case 9 : teacherComment (); break ; case 0 : System . out . println ( “학생등록시스템 종료” ); break loop ; default : System . out . println ( “잘못된 명령입니다.” ); } System . out . println (); } } public int StudentMenu () { System . out . println ( “**0번을 누르면 메인 창으로 이동됩니다.**” ); return Prompt . inputInt ( “[1]학생 정보 입력” + ” [2]학생 성적 입력” + ” [3]학생 목록” + ” [4]학생 상세 조회

” + “[5]학생 정보 수정” + ” [6]학생 정보 삭제” + ” [7]1등은? ” + ” [8]꼴찌는? ” + ” [9]선생님 코멘트” ); } private void scoreAdd () { System . out . println ( “[학생 성적 입력]” ); int no = Prompt . inputInt ( “학생 번호? ” ); Student student = findByNo ( no ); if ( student == null ) { System . out . println ( “해당 번호의 학생이 없습니다.” ); return ; } student . setKor ( Prompt . inputInt ( “국어성적? ” )); student . setEng ( Prompt . inputInt ( “영어성적? ” )); student . setMath ( Prompt . inputInt ( “수학성적? ” )); student . setSum ( student . getKor (), student . getEng (), student . getMath ()); } private void add () { System . out . println ( “[학생 정보 입력]” ); Student student = new Student (); while ( true ) { int number = Prompt . inputInt ( “학생 번호?(0 : 등록취소) ” ); if ( number == 0 ) { System . out . println ( “학생 등록을 취소합니다.” ); return ; } else if ( this . indexOf ( number ) != 0 ) { student . setNo ( number ); break ; } else { System . out . println ( “이미 등록된 학생번호입니다.” ); } } student . setName ( Prompt . inputString ( “학생 이름? ” )); student . setGender ( Prompt . inputInt ( “학생 성별? (1: 남자 / 2 : 여자)” )); String grade = Prompt . inputString ( “학생 학년? ” ); int num = Integer . parseInt ( grade ); if ( num < 0 || num > 4 ) { System . out . println ( “잘못된 입력값입니다.” ); return ; } else { student . setGrade ( grade ); } student . setRegisteredDate ( new Date ( System . currentTimeMillis ())); studentList . add ( student ); } public void studentList () { System . out . println ( “[학생 목록]” ); String grade = Prompt . inputString ( “**학년을 입력해주세요.**” ); Iterator < Student > iterator = studentList . iterator (); while ( iterator . hasNext ()) { Student student = iterator . next (); if ( student . getGrade (). equals ( grade )) { String genderLabel = null ; switch ( student . getGender ()) { case 1 : genderLabel = “남자” ; break ; case 2 : genderLabel = “여자” ; break ; } System . out . printf ( “이름 : %s

성별 : %s

학년 : %s

국어 : %d

영어 : %d

” + “수학 : %d

합계 : %d

평균 : %.1f

등록일 : %s

” , student . getName (), genderLabel , student . getGrade (), student . getKor (), student . getEng (), student . getMath (), student . getSum (), student . getAver (), student . getRegisteredDate ()); } } } public void StudentDetail () { System . out . println ( “[학생 상세 조회]” ); int no = Prompt . inputInt ( “학생 번호? ” ); Student student = findByNo ( no ); if ( student == null ) { System . out . println ( “해당 번호의 학생이 없습니다.” ); return ; } System . out . printf ( “번호 : %s

” , student . getNo ()); System . out . printf ( “이름 : %s

” , student . getName ()); String genderLabel = null ; switch ( student . getGender ()) { case 1 : genderLabel = “남자” ; break ; case 2 : genderLabel = “여자” ; break ; } System . out . printf ( “성별 : %s

” , genderLabel ); System . out . printf ( “학년 : %s

” , student . getGrade ()); System . out . printf ( “국어 : %s

” , student . getKor ()); System . out . printf ( “영어 : %s

” , student . getEng ()); System . out . printf ( “수학 : %s

” , student . getMath ()); System . out . printf ( “총합 : %s

” , student . getSum ()); System . out . printf ( “평균 : %s

” , student . getAver ()); if ( student . getComment () != null ) { System . out . printf ( “코멘트 : %s

” , student . getComment ()); } } public void studentUpdate () { System . out . println ( “[학생 정보 변경]” ); int no = Prompt . inputInt ( “학생 번호? ” ); Student student = findByNo ( no ); if ( student == null ) { System . out . println ( “해당 번호의 학생이 없습니다.” ); return ; } String name = Prompt . inputString ( String . format ( “이름(%s)? ” , student . getName ())); String grade = Prompt . inputString ( String . format ( “학년(%s)? ” , student . getGrade ())); int kor = Prompt . inputInt ( String . format ( “국어(%s)? ” , student . getKor ())); int eng = Prompt . inputInt ( String . format ( “영어(%s)? ” , student . getEng ())); int math = Prompt . inputInt ( String . format ( “수학(%s)? ” , student . getMath ())); student . setSum ( kor , eng , math ); String response = Prompt . inputString ( “정말 변경하시겠습니까?(y/N) ” ); if (! response . equalsIgnoreCase ( “y” )) { System . out . println ( “변경을 취소하였습니다.” ); return ; } student . setName ( name ); student . setGrade ( grade ); student . setKor ( kor ); student . setEng ( eng ); student . setMath ( math ); student . getSum (); System . out . println ( “학생 정보를 변경하였습니다.” ); System . out . println (); } public void studentDelete () { System . out . println ( “[학생 정보 삭제]” ); int no = Prompt . inputInt ( “번호? ” ); int index = indexOf ( no ); if ( index == – 1 ) { System . out . println ( “해당 번호의 학생이 없습니다.” ); return ; } String response = Prompt . inputString ( “정말 삭제하시겠습니까?(y/N) ” ); if (! response . equalsIgnoreCase ( “y” )) { System . out . println ( “삭제 취소.” ); return ; } studentList . remove ( index ); System . out . println ( “삭제 완료.” ); System . out . println (); } public void FirstPlace () { System . out . println ( “[1등 출력]” ); Iterator < Student > iterator = studentList . iterator (); int [] first = new int [ studentList . size ()]; int max = first [ 0 ]; String name = null ; while ( iterator . hasNext ()) { Student student = iterator . next (); if ( student . getSum () > max ) { max = student . getSum (); name = student . getName (); } } System . out . printf ( “1등은? ==> %s : %d점

” , name , max ); System . out . println ( “와우! 대단해요!” ); System . out . println (); } // 제대로 구현되지 못한 메서드 public void BottomPlace () { System . out . println ( “[꼴지 출력]” ); int [] bottom = new int [ studentList . size ()]; int min = bottom [ 0 ]; String name = null ; for ( int i = 1 ; i < studentList . size (); i ++) { Student student = studentList . get ( i ); if ( student . getSum () < min ) { min = student . getSum (); name = student . getName (); } } System . out . printf ( "꼴지 ==> %s : %d

” , name , min ); System . out . println ( “이 학생은 격려가 필요합니다.” ); System . out . println (); } private void teacherComment () { System . out . println ( “[선생님 코멘트]” ); int no = Prompt . inputInt ( “코멘트 입력할 학생 번호? ” ); Student student = findByNo ( no ); if ( student == null ) { System . out . println ( “해당 번호의 학생이 없습니다.” ); return ; } student . setComment ( Prompt . inputString ( “한줄 코멘트를 입력하세요.

” )); } private Student findByNo ( int no ) { for ( int i = 0 ; i < studentList . size (); i ++) { Student student = studentList . get ( i ); if ( student . getNo () == no ) { return student ; } } return null ; } private int indexOf ( int no ) { for ( int i = 0 ; i < studentList . size (); i ++) { Student student = studentList . get ( i ); if ( student . getNo () == no ) { return i ; } } return - 1 ; } } Prompt클래스 입출력 관련한 Prompt명령을 모아두었다. package mini.project ; import java.util.Scanner ; public class Prompt { static Scanner keyboardScan = new Scanner ( System . in ); public static String inputString ( String title ) { System . out . print ( title ); return keyboardScan . nextLine (); } public static int inputInt ( String title ) { return Integer . parseInt ( inputString ( title )); } public static void close () { keyboardScan . close (); } } 후기 이렇게 24시간, 정확히는 잠자고 밥먹는 시간을 제외한 14시간만에 팀원 한명과 태그를 이뤄 성적조회 프로그램을 만들었다. 미니 해커톤이지만 긴장감을 가지고 처음으로 누군가와 협업을 하며 프로그램을 어떻게 구현할지 고민하는 시간을 가질 수 있었다. 특히 간단하게만 생각했던 CRUD조차도 막상 처음부터 만들자니 자잘한 버그가 많이 발생했고, 그런 버그들을 고치는데 시간이 많이 들었다. 기능을 만드는 것 보다 유효성 검사를 꼼꼼히 해주며 프로그램이 단단해지도록(?) 하는게 더 어려웠다. 미숙하지만 결과물을 내고 나니 한층 더 자신감이 붙는걸 느낄 수 있었다. 재밌었음!

(JAVA) 미니 프로젝트 – 자판기 구현하기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

package day08; import java.util. Scanner ; public class Project { public static final int MAX = 10 ; // 메뉴의 최대 갯수 == 10 // 전역변수 선언 static String [] box = new String [MAX]; static int [] price = new int [MAX]; static int [] stock = new int [MAX]; static int count = 3 ; // 메뉴의 갯수 static int admin = 1004 ; // 관리자 메뉴로 가는 비밀번호 static int profit = 0 ; // 총 수익 static Scanner sc = new Scanner ( System . in ); // 처음 자판기를 초기화 하는 함수 public static void initialize() { box[ 0 ] = “장미” ; price[ 0 ] = 500 ; stock[ 0 ] = 3 ; box[ 1 ] = “프리지아” ; price[ 1 ] = 1000 ; stock[ 1 ] = 3 ; box[ 2 ] = “국화” ; price[ 2 ] = 3000 ; stock[ 2 ] = 3 ; } // 관리자 페이지를 담당하는 함수 public static void admin() { while ( true ) { System . out . println ( “==================================================” ); System . out . println ( “관리자 페이지 입니다.” ); System . out . println ( “1: 메뉴 변경 2: 가격 변경 3: 재고 추가 4: 메뉴 추가 5: 수익 확인 (종료는 -1)” ); System . out . print ( “번호를 입력하세요: ” ); int num = sc.nextInt(); System . out . println ( “==================================================” ); // 1. 메뉴 변경 if (num = = 1 ) { System . out . print ( “변경하실 메뉴의 번호를 입력하세요(1~” + count + “) :” ); int i = sc.nextInt(); System . out . print (box[i – 1 ] + “를(을) 무엇으로 바꾸시겠습니까? :” ); sc.nextLine(); String name = sc.next(); System . out . print (name + “의 가격은 얼마입니까? ” ); int v = sc.nextInt(); System . out . print (name + “의 재고를 몇 개 등록하시겠습니까? : ” ); int n = sc.nextInt(); box[i – 1 ] = name; price[i – 1 ] = v; stock[i – 1 ] = n; System . out . println ( “메뉴 변경이 완료되었습니다!” ); } // 2. 가격 변경 else if (num = = 2 ) { System . out . print ( “가격을 변경하실 메뉴의 번호를 입력하세요(1~” + count + “) :” ); int i = sc.nextInt(); System . out . print (box[i – 1 ] + “의 가격을 얼마로 바꾸시겠습니까? :” ); int j = sc.nextInt(); price[i – 1 ] = j; System . out . println ( “가격 변경이 완료되었습니다!” ); } // 3. 재고 추가 else if (num = = 3 ) { System . out . print ( “재고를 추가하실 메뉴의 번호를 입력하세요(1~” + count + “) :” ); int i = sc.nextInt(); System . out . print (box[i – 1 ] + “를(을) 몇 개 추가 하시겠습니까? :” ); int j = sc.nextInt(); stock[i – 1 ] + = j; System . out . println ( “재고 추가가 완료되었습니다!” ); } // 4. 메뉴 추가 else if (num = = 4 ) { if (count > = MAX – 1 ) { System . out . println ( “더 이상 메뉴가 들어갈 자리가 없습니다!” ); continue ; } else { System . out . print ( “추가하실 메뉴의 가격을 입력하세요 : ” ); int i = sc.nextInt(); System . out . print ( “추가하실 메뉴의 이름을 입력하세요 : ” ); sc.nextLine(); String name = sc.next(); System . out . print (name + “의 재고는 몇 개 입니까? : ” ); int j = sc.nextInt(); box[count] = name; price[count] = i; stock[count] = j; count + + ; System . out . println ( “메뉴 추가가 완료되었습니다!” ); } } // 5. 수익 확인 else if (num = = 5 ) { System . out . println ( “현재까지의 수익은 ” + profit + “입니다.” ); } // -1을 입력하면 다시 자판기 메뉴로 돌아감 else if (num = = – 1 ) { user(); return ; } } } // 유저 인터페이스를 담당하는 함수 public static void user() { Boolean first = true ; int money = 0 ; while ( true ) { System . out . println ( “==================================================” ); System . out . println ( “꽃 자판기 입니다. (번호:상품(재고))” ); // 번호:메뉴(가격) – 재고 출력 for ( int i = 0 ; i < count; i + + ) { System . out . print ((i + 1 ) + ":" + box[i] + "(" + price[i] + "W)-" + stock[i] + "개 " ); } System . out . println (); System . out . println ( "==================================================" ); // 처음에만 돈을 입력받고 잔돈 반환 전 까지는 돈을 입력받지 않는다. if (first){ System . out . print ( "돈을 넣어주세요: " ); money = sc.nextInt(); first = false ; } // 관리자 비밀번호는 1004, 입력하면 관리자 함수로 넘어감. if (money = = 1004 ) { admin(); return ; } System . out . print ( "메뉴 입력: " ); int num = sc.nextInt(); // 돈이 충분한가? if (money > = price[num – 1 ]) { // 재고가 충분한가? if (stock[num – 1 ] > 0 ) { money = money – price[num – 1 ]; stock[num – 1 ] – – ; profit + = price[num – 1 ]; System . out . println (box[num – 1 ] + “이(가) 나왔다!” ); } else { System . out . println ( “현재 재고가 없습니다!” ); continue ; } } else { System . out . println ( “잔액이 부족합니다!” ); } System . out . println ( “잔액 : ” + money); // 모든 돈을 사용하면 이용 종료 후 초기화면 진입 if (money = = 0 ) { System . out . println ( “감사합니다! 다음에 또 이용해주세요!!” ); first = true ; continue ; } // 돈이 남아있다면 선택지를 준다. System . out . println ( “1: 계속 구매하기 2: 금액 추가하기 3: 잔돈 반환하기 ” ); System . out . print ( “번호를 입력하세요: ” ); int num1 = sc.nextInt(); if (num1 = = 1 ) { continue ; } else if (num1 = = 2 ) { System . out . print ( “돈을 넣어주세요 : ” ); int extra = sc.nextInt(); money + = extra; System . out . println ( “금액이 추가되었습니다! 잔액: ” + money); } else if (num1 = = 3 ) { System . out . println ( “거스름돈 ” + money + “원이 반환됩니다.” ); System . out . println ( “감사합니다! 다음에 또 이용해주세요!!” ); first = true ; } } } public static void main( String [] args) { initialize(); user(); return ; } } Colored by Color Scripter

[미니프로젝트] Java Swing을 이용한 CRUD프로그램 만들기(축구선수 관리 프로그램)

728×90

반응형

SMALL

1. 기획

-Use Case Diagram

-Sequence Diagram

-E-R Diagram

-Wire Frame

K-League_Player_UI_1215_1619.pptx 0.06MB

2. 코딩 구현

-클래스

2.1 데이터 베이스 설계

-데이터 베이스 DDL

–데이터베이스 생성 create database uiproject; use uiproject; drop table user; —-유저 테이블 생성 create table user ( u_id varchar(30) primary key, u_pass varchar(30) not null, u_name varchar(10) not null, u_gender varchar(5) check (u_gender in (‘남’, ‘여’) ), u_birth date, u_pno varchar(30) not null, constraint uni_pno unique(u_pno) ); insert into user values(‘root’, ‘!123456’, ‘이지훈’, ‘남’, ‘1111-11-11’, ‘010-1234-1234’); —-팀 테이블 생성 drop table team; create table team( t_code varchar(30), t_name varchar(50), t_coach varchar(50), t_loc varchar(50), t_year varchar(10), primary key(t_code) ); select * from team; —-선수 테이블 생성 drop table player; create table player( p_no int(30) , t_code varchar(30), p_name varchar(50), p_length varchar(50), p_birth varchar(10), p_weight varchar(50), p_pos varchar(20), p_backno int(4), p_goal int(4), p_assi int(4), primary key(p_no), foreign key(t_code) references team(t_code) ); select * from player order by p_no desc limit 5; select * from player limit 50;

2.2 선수 및 팀 데이터 데이터베이스 안에 집어넣기

player.csv 0.03MB

team.csv 0.00MB

-TeamTO

package Pack_Team; public class TeamTO { private String t_code; private String t_name; private String t_coach; private String t_loc; private String t_year; public TeamTO() { } public String getT_code() { return t_code; } public String getT_name() { return t_name; } public String getT_coach() { return t_coach; } public String getT_loc() { return t_loc; } public String getT_year() { return t_year; } public void setT_code(String t_code) { this.t_code = t_code; } public void setT_name(String t_name) { this.t_name = t_name; } public void setT_coach(String t_coach) { this.t_coach = t_coach; } public void setT_loc(String t_loc) { this.t_loc = t_loc; } public void setT_year(String t_year) { this.t_year = t_year; } }

-TeamDAO

package Pack_Team; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Scanner; public class TeamDAO { private Connection conn; private ArrayList teams = new ArrayList(); public TeamDAO() { //db 연결정보 설정 및 드라이버 로딩 String url = “jdbc:mysql://localhost:3307/uiproject”; String user = “root”; String password = “!123456”; try { Class.forName( “org.mariadb.jdbc.Driver” ); this.conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //팀 추가하기 메서드 public void InsertTeam() { try { //선수엑셀파일 가져오기 BufferedReader br = new BufferedReader( new FileReader( “./team.csv” ) ); String team = null; //sql문 선언 및 엑셀파일읽어서 sql문 실행 String sql = “insert into team values(?, ?, ?, ?, ?)”; PreparedStatement pstmt = this.conn.prepareStatement(sql); while( (team = br.readLine() ) != null ) { String[] teams = team.split(“,”); pstmt.setString( 1, teams[0] ); pstmt.setString( 2, teams[1] ); pstmt.setString( 3, teams[2] ); pstmt.setString( 4, teams[3] ); pstmt.setString( 5, teams[4] ); ResultSet rs = pstmt.executeQuery(); if ( rs != null ) rs.close(); } if ( pstmt != null ) pstmt.close(); if ( conn != null ) conn.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //모든 팀 리턴해주는 메소드 (선수 추가 패널의 콤보박스 만들 때 사용) public ArrayList selectTeam() { String sql = “select t_code, t_name from team order by t_code asc”; try { PreparedStatement pstmt = this.conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); while( rs.next() ) { TeamTO to = new TeamTO(); to.setT_code( rs.getString( 1 ) ); to.setT_name( rs.getString( 2 ) ); teams.add( to ); } if ( rs != null ) rs.close(); if ( pstmt != null ) pstmt.close(); if ( conn != null ) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return teams; } }

-InsertTeam (실행클래스)

package Pack_Team; public class InsertTeam { public static void main(String[] args) { TeamDAO dao = new TeamDAO(); dao.InsertTeam(); System.out.println( “팀 저장이 완료되었습니다.” ); } }

-SoccerTO

package Pack_Player; public class SoccerTO { private String p_name; private String p_backno; private String t_code; private String p_length; private String p_weight; private String p_birth; private String p_no; private String p_pos; public SoccerTO() { } public void setP_name(String p_name) { this.p_name = p_name; } public void setP_backno(String p_backno) { this.p_backno = p_backno; } public void setT_code(String t_code) { this.t_code = t_code; } public void setP_length(String p_length) { this.p_length = p_length; } public void setP_weight(String p_weight) { this.p_weight = p_weight; } public void setP_birth(String p_birth) { this.p_birth = p_birth; } public void setP_no(String p_no) { this.p_no = p_no; } public void setP_pos(String p_pos) { this.p_pos = p_pos; } public String getP_name() { return p_name; } public String getP_backno() { return p_backno; } public String getT_code() { return t_code; } public String getP_length() { return p_length; } public String getP_weight() { return p_weight; } public String getP_birth() { return p_birth; } public String getP_no() { return p_no; } public String getP_pos() { return p_pos; } }

-SoccerDAO

package Pack_Player; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class SoccerDAO { private Connection conn; private ArrayList players = new ArrayList(); private ArrayList players_6 = new ArrayList(); public SoccerDAO() { //db 연결정보 설정 및 드라이버 로딩 String url = “jdbc:mysql://localhost:3307/uiproject”; String user = “root”; String password = “!123456”; try { Class.forName( “org.mariadb.jdbc.Driver” ); this.conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //엑셀에서 선수 파일 가져와서 DB에 저장하는 메서드 public void insertPlayer() { try { //선수엑셀파일 가져오기 BufferedReader br = new BufferedReader( new FileReader( “./player.csv” ) ); String address; //sql문 선언 및 엑셀파일읽어서 sql문 실행 String sql = “insert into player(p_no, t_code, p_name, p_length, p_birth, p_weight, p_pos, p_backno) values(?, ?, ?, ?, ?, ?, ?, ?)”; PreparedStatement pstmt = this.conn.prepareStatement(sql); while( (address = br.readLine() ) != null ) { String[] addresses = address.split(“,”); pstmt.setInt( 1, Integer.parseInt( addresses[0] ) ); pstmt.setString( 2, addresses[1] ); pstmt.setString( 3, addresses[2] ); pstmt.setString( 4, addresses[3] ); pstmt.setString( 5, addresses[4] ); pstmt.setString( 6, addresses[5] ); pstmt.setString( 7, addresses[6] ); pstmt.setInt( 8, Integer.parseInt(addresses[7]) ); ResultSet rs = pstmt.executeQuery(); if ( rs != null ) rs.close(); } if ( pstmt != null ) pstmt.close(); if ( conn != null ) conn.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //5번패널: 선수 검색하는 메서드 public ArrayList searchPlayer( String playerName ) { try { String sql = “select p_no, t_code, p_name, p_length, p_birth, p_weight, p_pos, p_backno from player where p_name = ?”; PreparedStatement pstmt = this.conn.prepareStatement(sql); pstmt.setString( 1, playerName ); ResultSet rs = pstmt.executeQuery(); while( rs.next() ) { SoccerTO to = new SoccerTO(); to.setP_no( rs.getString( “p_no” ) ); to.setT_code( rs.getString( “t_code” ) ); to.setP_name( rs.getString( “p_name” ) ); to.setP_length( rs.getString( “p_length” ) ); to.setP_birth( rs.getString( “p_birth” ) ); to.setP_weight( rs.getString( “p_weight” ) ); to.setP_pos( rs.getString( “p_pos” ) ); to.setP_backno( rs.getString( “p_backno” ) ); players.add( to ); } if( rs != null ) rs.close(); if( pstmt != null ) pstmt.close(); if( conn != null ) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } return players; } //5번 패널: 선수 삭제하는 메서드 public void deletePlayer( int playerNum ) { try { String sqlDelete = “delete from player where p_no = ?”; PreparedStatement pstmtDelete = this.conn.prepareStatement(sqlDelete); pstmtDelete.setInt(1, playerNum ); ResultSet rsDelete = pstmtDelete.executeQuery(); if( rsDelete != null ) rsDelete.close(); if( pstmtDelete != null ) pstmtDelete.close(); if( conn != null ) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //6번패널: 선수 검색하는 메서드 public ArrayList searchPlayer_6( Integer pNumber ) { try { String sql = “select p_no, t_code, p_name, p_length, p_birth, p_weight, p_pos, p_backno from player where p_no = ?”; PreparedStatement pstmt = this.conn.prepareStatement(sql); pstmt.setInt( 1, pNumber ); ResultSet rs = pstmt.executeQuery(); while( rs.next() ) { SoccerTO to = new SoccerTO(); to.setP_no( rs.getString( “p_no” ) ); to.setT_code( rs.getString( “t_code” ) ); to.setP_name( rs.getString( “p_name” ) ); to.setP_length( rs.getString( “p_length” ) ); to.setP_birth( rs.getString( “p_birth” ) ); to.setP_weight( rs.getString( “p_weight” ) ); to.setP_pos( rs.getString( “p_pos” ) ); to.setP_backno( rs.getString( “p_backno” ) ); players_6.add( to ); } if( rs != null ) rs.close(); if( pstmt != null ) pstmt.close(); if( conn != null ) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } return players_6; } }

-InsertSoccer (실행 클래스)

package Pack_Player; public class InsertSoccer { public static void main(String[] args) { SoccerDAO dao = new SoccerDAO(); dao.insertPlayer(); System.out.println( “선수 저장이 완료 되었습니다.”); } }

2.3 로그인과 회원가입

-MainUI (최종 실행 클래스)

package Pack_UI; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import Pack_Model.TeamComboModel; import Pack_Model._5_PlayerTableModel; import Pack_Player.SoccerDAO; import Pack_Player.SoccerTO; import Pack_Model.LoginDAO; import Pack_Model.TeamComboModel; import javax.swing.JLabel; import javax.swing.JOptionPane; import java.awt.Font; import java.awt.HeadlessException; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import javax.swing.JPasswordField; import java.awt.Panel; import javax.swing.JComboBox; import javax.swing.DefaultComboBoxModel; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; import javax.swing.JTable; import javax.swing.border.TitledBorder; import javax.swing.border.EtchedBorder; import java.awt.Color; public class MainUI extends JFrame { private JPanel contentPane; Panel panel_Initial = new Panel(); JPanel panel_CreateUser = new JPanel(); JPanel panel_MainMenu = new JPanel(); JPanel panel_InsertPlayer = new JPanel(); JPanel panel_DeletePlayer = new JPanel(); JPanel panel_SelectPlayer = new JPanel(); JPanel panel_UpdatePlayer = new JPanel(); private JTextField textField; private JPasswordField passwordField; private JTextField textCreateId; private JTextField textCreatePno1; private JTextField textCreateName; private JTextField textCreateYear; private JTextField textCreateMonth; private JTextField textCreateDay; private JTextField textCreatePno2; private JTextField textCreatePno3; private JPasswordField passwordFieldCreatePw; private final JButton btnMenuInsertPlayer = new JButton(“\uC120 \uC218 \uCD94 \uAC00”); private final JButton btnMenuDeletePlayer = new JButton(“\uC120 \uC218 \uC0AD \uC81C”); private final JButton btnMenuUpdatePlayer = new JButton(“\uC120 \uC218 \uC218 \uC815”); private final JButton btnMenuSelectPlayer = new JButton(“\uC120 \uC218 \uAC80 \uC0C9”); private final JButton btnMenuExit = new JButton(“\uD504 \uB85C \uADF8 \uB7A8 \uC885 \uB8CC”); private final JLabel lblNewLabel4_1 = new JLabel(“\uC774\uB984”); private final JLabel lblNewLabel4_2 = new JLabel(“\uD300\uBA85”); private final JLabel lblNewLabel4_3 = new JLabel(“\uD0A4”); private final JLabel lblNewLabel4_4 = new JLabel(“\uC0DD\uB144\uC6D4\uC77C”); private final JLabel lblNewLabel4_5 = new JLabel(“\uBAB8\uBB34\uAC8C”); private final JLabel lblNewLabel4_6 = new JLabel(“\uD3EC\uC9C0\uC158”); private final JLabel lblNewLabel4_7 = new JLabel(“\uB4F1\uBC88\uD638”); private final JTextField textField_4_PlayerName = new JTextField(); private final JComboBox comboBox_4_Team = new JComboBox(); private final JTextField textField_4_Height = new JTextField(); private final JTextField textField_4_Year = new JTextField(); private final JTextField textField_4_Month = new JTextField(); private final JTextField textField_4_Day = new JTextField(); private final JLabel lblNewLabel_3 = new JLabel(“ex) 1990 01 01”); private final JTextField textField_4_Weigth = new JTextField(); private final JTextField textField_4_BackNum = new JTextField(); private final JComboBox comboBox_4_Position = new JComboBox(); private final JButton btn_4_Back = new JButton(“\uBA54 \uB274 \uB85C \uC774 \uB3D9”); private final JButton btn_4_InsertPlayer = new JButton(“\uC120 \uC218 \uCD94 \uAC00”); private final JLabel lblNewLabel_5 = new JLabel(“\uC120 \uC218 \uC774 \uB984”); private final JTextField textField_5_PlayerName = new JTextField(); private JTable table_5_SearchResult; private int playerNum = 0; private JTextField textField_7_PlayerName; private JTable table_7_ResultPlayer; private JTextField textField_6_P_no; private JTextField textField_6_Pname; private JTextField textField_6_Pheigth; private JTextField textField_6_Year; private JTextField textField_6_Weight; private JTextField textField_6_Backno; private JTextField textField_6_Month; private JTextField textField_6_Day; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { MainUI frame = new MainUI(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public MainUI() { textField_5_PlayerName.setBounds(207, 94, 232, 25); textField_5_PlayerName.setColumns(10); textField_4_Year.setBounds(221, 215, 84, 21); textField_4_Year.setColumns(10); textField_4_Height.setBounds(221, 177, 215, 21); textField_4_Height.setColumns(10); textField_4_PlayerName.setBounds(221, 95, 215, 21); textField_4_PlayerName.setColumns(10); setTitle(“K-\uB9AC\uADF8 \uCD95\uAD6C\uC120\uC218 \uB370\uC774\uD130 \uAD00\uB9AC \uD504\uB85C\uADF8\uB7A8”); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 653, 540); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); setLocationRelativeTo(null); setResizable(false); contentPane.setLayout(null); //ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ1. 로그인 패널ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ panel_Initial.setBounds(0, 0, 637, 501); contentPane.add(panel_Initial); panel_Initial.setLayout(null); JLabel lblNewLabel = new JLabel(“\uCD95\uAD6C\uC120\uC218 \uAD00\uB9AC \uD504\uB85C\uADF8\uB7A8”); lblNewLabel.setBounds(140, 28, 342, 35); lblNewLabel.setFont(new Font(“휴먼둥근헤드라인”, Font.BOLD, 30)); panel_Initial.add(lblNewLabel); JLabel lblNewLabel_1 = new JLabel(“ID”); lblNewLabel_1.setBounds(179, 120, 18, 22); lblNewLabel_1.setFont(new Font(“굴림”, Font.BOLD, 18)); panel_Initial.add(lblNewLabel_1); JLabel lblNewLabel_1_1 = new JLabel(“PW”); lblNewLabel_1_1.setBounds(179, 178, 27, 22); lblNewLabel_1_1.setFont(new Font(“굴림”, Font.BOLD, 18)); panel_Initial.add(lblNewLabel_1_1); textField = new JTextField(); textField.setBounds(230, 115, 199, 30); textField.setColumns(10); panel_Initial.add(textField); JButton btnLogin = new JButton(“\uB85C \uADF8 \uC778”); btnLogin.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { LoginDAO dao = new LoginDAO(); try { if( dao.searchId( textField.getText() , passwordField.getText() ) ) { JOptionPane.showMessageDialog( MainUI.this, “로그인에 성공했습니다.”); panel_Initial.setVisible( false ); panel_CreateUser.setVisible( false ); panel_MainMenu.setVisible( true ); } else { JOptionPane.showMessageDialog( MainUI.this, “로그인에 실패했습니다. ID나 PW를 다시 확인해주세요”); } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); btnLogin.setBounds(256, 271, 150, 33); btnLogin.setFont(new Font(“굴림”, Font.BOLD, 20)); panel_Initial.add(btnLogin); JButton btnCreateUser = new JButton(“\uD68C \uC6D0 \uAC00 \uC785”); btnCreateUser.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_MainMenu.setVisible( false ); panel_Initial.setVisible( false ); panel_DeletePlayer.setVisible( false ); panel_SelectPlayer.setVisible( false ); panel_UpdatePlayer.setVisible( false ); panel_InsertPlayer.setVisible( false ); panel_CreateUser.setVisible( true ); } }); btnCreateUser.setBounds(256, 340, 150, 33); btnCreateUser.setFont(new Font(“굴림”, Font.BOLD, 20)); panel_Initial.add(btnCreateUser); passwordField = new JPasswordField(); passwordField.setBounds(230, 168, 199, 30); panel_Initial.add(passwordField); //ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ2. 회원가입 패널ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ panel_CreateUser.setBounds(0, 0, 637, 501); contentPane.add(panel_CreateUser); panel_CreateUser.setLayout(null); JLabel lblNewLabe2 = new JLabel(“\uD68C \uC6D0 \uAC00 \uC785”); lblNewLabe2.setBounds(233, 28, 187, 35); lblNewLabe2.setFont(new Font(“휴먼둥근헤드라인”, Font.BOLD, 30)); panel_CreateUser.add(lblNewLabe2); JLabel lblNewLabel2_1 = new JLabel(“ID”); lblNewLabel2_1.setBounds(137, 94, 18, 22); lblNewLabel2_1.setFont(new Font(“굴림”, Font.BOLD, 18)); panel_CreateUser.add(lblNewLabel2_1); textCreateId = new JTextField(); textCreateId.setBounds(207, 96, 231, 21); panel_CreateUser.add(textCreateId); textCreateId.setColumns(10); JLabel lblNewLabel2_1_1 = new JLabel(“PW”); lblNewLabel2_1_1.setFont(new Font(“굴림”, Font.BOLD, 18)); lblNewLabel2_1_1.setBounds(137, 135, 36, 22); panel_CreateUser.add(lblNewLabel2_1_1); JLabel lblNewLabel2_1_2 = new JLabel(“\uC131\uBCC4”); lblNewLabel2_1_2.setFont(new Font(“굴림”, Font.BOLD, 18)); lblNewLabel2_1_2.setBounds(137, 224, 36, 22); panel_CreateUser.add(lblNewLabel2_1_2); textCreatePno1 = new JTextField(); textCreatePno1.setColumns(10); textCreatePno1.setBounds(207, 308, 51, 21); panel_CreateUser.add(textCreatePno1); JLabel lblNewLabel2_1_3 = new JLabel(“\uD734\uB300\uC804\uD654”); lblNewLabel2_1_3.setFont(new Font(“굴림”, Font.BOLD, 18)); lblNewLabel2_1_3.setBounds(116, 308, 79, 22); panel_CreateUser.add(lblNewLabel2_1_3); JLabel lblNewLabel2_1_4 = new JLabel(“\uC0DD\uB144\uC6D4\uC77C”); lblNewLabel2_1_4.setFont(new Font(“굴림”, Font.BOLD, 18)); lblNewLabel2_1_4.setBounds(116, 266, 79, 22); panel_CreateUser.add(lblNewLabel2_1_4); textCreateName = new JTextField(); textCreateName.setColumns(10); textCreateName.setBounds(207, 177, 231, 21); panel_CreateUser.add(textCreateName); JLabel lblNewLabel2_1_5 = new JLabel(“\uC774\uB984”); lblNewLabel2_1_5.setFont(new Font(“굴림”, Font.BOLD, 18)); lblNewLabel2_1_5.setBounds(137, 177, 36, 22); panel_CreateUser.add(lblNewLabel2_1_5); JComboBox comboCreateGender = new JComboBox(); comboCreateGender.setModel(new DefaultComboBoxModel(new String[] {“\uB0A8”, “\uC5EC”})); comboCreateGender.setSelectedIndex(0); comboCreateGender.setBounds(207, 225, 119, 23); panel_CreateUser.add(comboCreateGender); JButton btnOverlapchk = new JButton(“\uC911\uBCF5\uD655\uC778”); btnOverlapchk.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { LoginDAO dao = new LoginDAO(); try { if( dao.checkId( textCreateId.getText() ) ) { JOptionPane.showMessageDialog( MainUI.this, “ID가 중복됩니다. 다른 ID를 사용해주세요.”); textCreateId.setText( “” ); } else { JOptionPane.showMessageDialog( MainUI.this, “사용가능한 ID입니다.”); } } catch (HeadlessException | SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); btnOverlapchk.setBounds(450, 95, 97, 23); panel_CreateUser.add(btnOverlapchk); JButton btnCreate = new JButton(“\uD68C \uC6D0 \uAC00 \uC785”); btnCreate.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { String birth = textCreateYear.getText() + “-” + textCreateMonth.getText() + “-” + textCreateDay.getText(); String pno = textCreatePno1.getText() + “-” + textCreatePno2.getText() + “-” + textCreatePno3.getText(); LoginDAO dao = new LoginDAO(); try { dao.createUser( textCreateId.getText(), passwordFieldCreatePw.getText(), textCreateName.getText() , (String)comboCreateGender.getSelectedItem(), birth, pno ); JOptionPane.showMessageDialog( MainUI.this, “회원가입이 완료되었습니다.”); panel_CreateUser.setVisible( false ); panel_Initial.setVisible( true ); } catch (SQLException e1) { // TODO Auto-generated catch block JOptionPane.showMessageDialog( MainUI.this, “입력정보를 정확히 입력하거나 ID중복을 확인해주세요.”); } } }); btnCreate.setFont(new Font(“굴림”, Font.PLAIN, 15)); btnCreate.setBounds(341, 388, 135, 35); panel_CreateUser.add(btnCreate); textCreateYear = new JTextField(); textCreateYear.setBounds(207, 268, 79, 21); panel_CreateUser.add(textCreateYear); textCreateYear.setColumns(10); textCreateMonth = new JTextField(); textCreateMonth.setColumns(10); textCreateMonth.setBounds(296, 268, 65, 21); panel_CreateUser.add(textCreateMonth); textCreateDay = new JTextField(); textCreateDay.setColumns(10); textCreateDay.setBounds(373, 268, 65, 21); panel_CreateUser.add(textCreateDay); JLabel lblNewLabel_2 = new JLabel(“ex) 1999 09 09”); lblNewLabel_2.setBounds(450, 271, 97, 15); panel_CreateUser.add(lblNewLabel_2); textCreatePno2 = new JTextField(); textCreatePno2.setColumns(10); textCreatePno2.setBounds(270, 308, 79, 21); panel_CreateUser.add(textCreatePno2); textCreatePno3 = new JTextField(); textCreatePno3.setColumns(10); textCreatePno3.setBounds(361, 308, 77, 21); panel_CreateUser.add(textCreatePno3); JLabel lblNewLabel_2_1 = new JLabel(“ex) 010 1111 1111”); lblNewLabel_2_1.setBounds(450, 311, 97, 15); panel_CreateUser.add(lblNewLabel_2_1); passwordFieldCreatePw = new JPasswordField(); passwordFieldCreatePw.setBounds(207, 137, 231, 21); panel_CreateUser.add(passwordFieldCreatePw); JButton btnCreateBack = new JButton(“\uB4A4 \uB85C \uAC00 \uAE30 “); btnCreateBack.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_CreateUser.setVisible( false ); panel_Initial.setVisible( true ); } }); btnCreateBack.setFont(new Font(“굴림”, Font.PLAIN, 15)); btnCreateBack.setBounds(171, 388, 135, 35); panel_CreateUser.add(btnCreateBack); //ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ3. 메뉴 패널ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ panel_MainMenu.setBounds(0, 0, 637, 501); contentPane.add(panel_MainMenu); panel_MainMenu.setLayout(null); JLabel lblNewLabel3 = new JLabel(“\uCD95\uAD6C\uC120\uC218 \uAD00\uB9AC \uD504\uB85C\uADF8\uB7A8”); panel_MainMenu.add(lblNewLabel3); lblNewLabel3.setBounds(157, 27, 342, 35); lblNewLabel3.setFont(new Font(“휴먼둥근헤드라인”, Font.BOLD, 30)); btnMenuInsertPlayer.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_MainMenu.setVisible( false ); panel_CreateUser.setVisible( false ); panel_Initial.setVisible( false ); panel_DeletePlayer.setVisible( false ); panel_SelectPlayer.setVisible( false ); panel_UpdatePlayer.setVisible( false ); panel_InsertPlayer.setVisible( true ); } }); btnMenuInsertPlayer.setFont(new Font(“휴먼둥근헤드라인”, Font.PLAIN, 18)); btnMenuInsertPlayer.setBounds(219, 100, 212, 48); panel_MainMenu.add(btnMenuInsertPlayer); btnMenuDeletePlayer.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_MainMenu.setVisible( false ); panel_CreateUser.setVisible( false ); panel_Initial.setVisible( false ); panel_SelectPlayer.setVisible( false ); panel_UpdatePlayer.setVisible( false ); panel_InsertPlayer.setVisible( false ); panel_DeletePlayer.setVisible( true ); } }); btnMenuDeletePlayer.setFont(new Font(“휴먼둥근헤드라인”, Font.PLAIN, 18)); btnMenuDeletePlayer.setBounds(219, 187, 212, 48); panel_MainMenu.add(btnMenuDeletePlayer); btnMenuUpdatePlayer.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_MainMenu.setVisible( false ); panel_CreateUser.setVisible( false ); panel_Initial.setVisible( false ); panel_SelectPlayer.setVisible( false ); panel_InsertPlayer.setVisible( false ); panel_DeletePlayer.setVisible( false ); panel_UpdatePlayer.setVisible( true ); } }); btnMenuUpdatePlayer.setFont(new Font(“휴먼둥근헤드라인”, Font.PLAIN, 18)); btnMenuUpdatePlayer.setBounds(219, 270, 212, 48); panel_MainMenu.add(btnMenuUpdatePlayer); btnMenuSelectPlayer.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_MainMenu.setVisible( false ); panel_CreateUser.setVisible( false ); panel_Initial.setVisible( false ); panel_InsertPlayer.setVisible( false ); panel_DeletePlayer.setVisible( false ); panel_UpdatePlayer.setVisible( false ); panel_SelectPlayer.setVisible( true ); } }); btnMenuSelectPlayer.setFont(new Font(“휴먼둥근헤드라인”, Font.PLAIN, 18)); btnMenuSelectPlayer.setBounds(219, 353, 212, 48); panel_MainMenu.add(btnMenuSelectPlayer); btnMenuExit.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { System.exit(0); } }); btnMenuExit.setFont(new Font(“휴먼둥근헤드라인”, Font.PLAIN, 18)); btnMenuExit.setBounds(219, 432, 212, 48); panel_MainMenu.add(btnMenuExit); //ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ4. 선수 추가 패널ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ panel_InsertPlayer.setBounds(0, 0, 637, 501); contentPane.add(panel_InsertPlayer); panel_InsertPlayer.setLayout(null); JLabel lblNewLabel4 = new JLabel(“선 수 추 가”); lblNewLabel4.setBounds(234, 20, 172, 35); lblNewLabel4.setFont(new Font(“휴먼둥근헤드라인”, Font.BOLD, 30)); panel_InsertPlayer.add(lblNewLabel4); lblNewLabel4_1.setFont(new Font(“맑은 고딕”, Font.PLAIN, 15)); lblNewLabel4_1.setBounds(144, 92, 65, 21); panel_InsertPlayer.add(lblNewLabel4_1); lblNewLabel4_2.setFont(new Font(“맑은 고딕”, Font.PLAIN, 15)); lblNewLabel4_2.setBounds(144, 133, 65, 21); panel_InsertPlayer.add(lblNewLabel4_2); lblNewLabel4_3.setFont(new Font(“맑은 고딕”, Font.PLAIN, 15)); lblNewLabel4_3.setBounds(144, 174, 65, 21); panel_InsertPlayer.add(lblNewLabel4_3); lblNewLabel4_4.setFont(new Font(“맑은 고딕”, Font.PLAIN, 15)); lblNewLabel4_4.setBounds(144, 215, 65, 21); panel_InsertPlayer.add(lblNewLabel4_4); lblNewLabel4_5.setFont(new Font(“맑은 고딕”, Font.PLAIN, 15)); lblNewLabel4_5.setBounds(144, 257, 65, 21); panel_InsertPlayer.add(lblNewLabel4_5); lblNewLabel4_6.setFont(new Font(“맑은 고딕”, Font.PLAIN, 15)); lblNewLabel4_6.setBounds(144, 300, 65, 21); panel_InsertPlayer.add(lblNewLabel4_6); lblNewLabel4_7.setFont(new Font(“맑은 고딕”, Font.PLAIN, 15)); lblNewLabel4_7.setBounds(144, 342, 65, 21); panel_InsertPlayer.add(lblNewLabel4_7); panel_InsertPlayer.add(textField_4_PlayerName); comboBox_4_Team.setBounds(221, 135, 215, 23); comboBox_4_Team.setModel( new TeamComboModel() ); panel_InsertPlayer.add(comboBox_4_Team); panel_InsertPlayer.add(textField_4_Height); panel_InsertPlayer.add(textField_4_Year); textField_4_Month.setColumns(10); textField_4_Month.setBounds(317, 215, 53, 21); panel_InsertPlayer.add(textField_4_Month); textField_4_Day.setColumns(10); textField_4_Day.setBounds(375, 215, 61, 21); panel_InsertPlayer.add(textField_4_Day); lblNewLabel_3.setBounds(452, 215, 133, 15); panel_InsertPlayer.add(lblNewLabel_3); textField_4_Weigth.setColumns(10); textField_4_Weigth.setBounds(221, 257, 215, 21); panel_InsertPlayer.add(textField_4_Weigth); textField_4_BackNum.setColumns(10); textField_4_BackNum.setBounds(221, 342, 215, 21); panel_InsertPlayer.add(textField_4_BackNum); comboBox_4_Position.setModel(new DefaultComboBoxModel(new String[] {“GK”, “FW”, “DF”, “MF”})); comboBox_4_Position.setSelectedIndex(0); comboBox_4_Position.setBounds(221, 298, 215, 23); panel_InsertPlayer.add(comboBox_4_Position); btn_4_Back.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_InsertPlayer.setVisible( false ); panel_MainMenu.setVisible( true ); } }); btn_4_Back.setFont(new Font(“굴림”, Font.PLAIN, 15)); btn_4_Back.setBounds(144, 411, 133, 35); panel_InsertPlayer.add(btn_4_Back); btn_4_InsertPlayer.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { String p_birth = textField_4_Day.getText() + “/” + textField_4_Month.getText() + “/” + textField_4_Year.getText(); String t_codes = (String)comboBox_4_Team.getSelectedItem(); String[] t_code = t_codes.split(“\\(“); LoginDAO dao = new LoginDAO(); try { dao.insertPlayer( t_code[0], textField_4_PlayerName.getText(), textField_4_Height.getText(), p_birth, textField_4_Weigth.getText(), (String)comboBox_4_Position.getSelectedItem(), textField_4_BackNum.getText() ); JOptionPane.showMessageDialog( MainUI.this, “선수 추가가 완료되었습니다.”); textField_4_PlayerName.setText(“”); textField_4_BackNum.setText(“”); textField_4_Day.setText(“”); textField_4_Height.setText(“”); textField_4_Month.setText(“”); textField_4_Weigth.setText(“”); textField_4_Year.setText(“”); panel_InsertPlayer.setVisible( false ); panel_MainMenu.setVisible( true ); } catch (SQLException e1) { // TODO Auto-generated catch block JOptionPane.showMessageDialog( MainUI.this, “값이 이상합니다 다시 입력해주세요.”); textField_4_PlayerName.setText(“”); textField_4_BackNum.setText(“”); textField_4_Day.setText(“”); textField_4_Height.setText(“”); textField_4_Month.setText(“”); textField_4_Weigth.setText(“”); textField_4_Year.setText(“”); e1.printStackTrace(); } } }); btn_4_InsertPlayer.setFont(new Font(“굴림”, Font.PLAIN, 15)); btn_4_InsertPlayer.setBounds(335, 411, 133, 35); panel_InsertPlayer.add(btn_4_InsertPlayer); //ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ5. 선수 삭제 패널ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ panel_DeletePlayer.setBounds(0, 0, 637, 501); contentPane.add(panel_DeletePlayer); panel_DeletePlayer.setLayout(null); JLabel lblNewLabel5 = new JLabel(“선 수 삭 제”); lblNewLabel5.setBounds(233, 28, 172, 35); lblNewLabel5.setFont(new Font(“휴먼둥근헤드라인”, Font.BOLD, 30)); panel_DeletePlayer.add(lblNewLabel5); lblNewLabel_5.setFont(new Font(“휴먼둥근헤드라인”, Font.PLAIN, 15)); lblNewLabel_5.setBounds(104, 94, 91, 25); panel_DeletePlayer.add(lblNewLabel_5); panel_DeletePlayer.add(textField_5_PlayerName); JScrollPane scrollPane = new JScrollPane(); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane.setBounds(12, 142, 613, 259); panel_DeletePlayer.add(scrollPane); table_5_SearchResult = new JTable(); scrollPane.setViewportView(table_5_SearchResult); JButton btn_5_Search = new JButton(“\uAC80 \uC0C9”); btn_5_Search.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { String playerName = textField_5_PlayerName.getText(); table_5_SearchResult.setModel( new _5_PlayerTableModel( playerName ) ); } }); table_5_SearchResult.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { playerNum = Integer.parseInt( (String)table_5_SearchResult.getValueAt( table_5_SearchResult.getSelectedRow() , 0 ) ) ; } }); btn_5_Search.setFont(new Font(“굴림”, Font.PLAIN, 15)); btn_5_Search.setBounds(451, 94, 119, 25); panel_DeletePlayer.add(btn_5_Search); JButton btn_5_Menu = new JButton(“\uBA54 \uB274”); btn_5_Menu.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { panel_DeletePlayer.setVisible( false ); panel_MainMenu.setVisible( true ); } }); btn_5_Menu.setFont(new Font(“굴림”, Font.PLAIN, 15)); btn_5_Menu.setBounds(144, 411, 133, 35); panel_DeletePlayer.add(btn_5_Menu); JButton btn_5_Delete = new JButton(“\uC120 \uC218 \uC0AD \uC81C”); btn_5_Delete.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { SoccerDAO dao = new SoccerDAO(); String playerName = textField_5_PlayerName.getText(); dao.deletePlayer( playerNum ); JOptionPane.showMessageDialog( MainUI.this, “선수 삭제가 완료되었습니다. 다시 검색해보세요.”); } }); btn_5_Delete.setFont(new Font(“굴림”, Font.PLAIN, 15)); btn_5_Delete.setBounds(335, 411, 133, 35); panel_DeletePlayer.add(btn_5_Delete); //ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ6. 선수 수정 패널ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ JPanel panel = new JPanel(); panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)), “\uC120\uC218 \uC815\uBCF4\uB97C \uC218\uC815\uD574\uC8FC\uC138\uC694”, TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0))); panel.setBounds(91, 105, 495, 283); panel_UpdatePlayer.add(panel); panel.setLayout(null); panel_UpdatePlayer.setBounds(0, 0, 637, 501); contentPane.add(panel_UpdatePlayer); panel_UpdatePlayer.setLayout(null); JLabel lblNewLabel_6_1 = new JLabel(“\uC120 \uC218 \uC218 \uC815”); lblNewLabel_6_1.setFont(new Font(“HY헤드라인M”, Font.BOLD, 30)); lblNewLabel_6_1.setBounds(236, 10, 184, 47); panel_UpdatePlayer.add(lblNewLabel_6_1); JLabel lblNewLabel_7_2 = new JLabel(“\uC120 \uC218 \uBC88 \uD638”); lblNewLabel_7_2.setFont(new Font(“굴림”, Font.PLAIN, 15)); lblNewLabel_7_2.setBounds(77, 72, 77, 23); panel_UpdatePlayer.add(lblNewLabel_7_2); textField_6_P_no = new JTextField(); textField_6_P_no.setBounds(166, 71, 278, 23); panel_UpdatePlayer.add(textField_6_P_no); textField_6_P_no.setColumns(10); JComboBox comboBox_6_Position = new JComboBox(); comboBox_6_Position.setBounds(75, 202, 268, 21); panel.add(comboBox_6_Position); comboBox_6_Position.setModel(new DefaultComboBoxModel(new String[] {“GK”, “FW”, “MF”, “DF”})); JComboBox comboBox_6_Tcode = new JComboBox(); comboBox_6_Tcode.setBounds(75, 37, 268, 23); panel.add(comboBox_6_Tcode); JButton btn_6_SearchPlayer = new JButton(“\uAC80 \uC0C9”); btn_6_SearchPlayer.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { Integer pNumber = Integer.parseInt( textField_6_P_no.getText() ); ArrayList to = new ArrayList(); SoccerDAO dao = new SoccerDAO(); to = dao.searchPlayer_6( pNumber ); comboBox_6_Tcode.setModel( new TeamComboModel() ); int i = 0; for( i = 0; i players; public _5_PlayerTableModel( String playerName) { SoccerDAO dao = new SoccerDAO(); players = dao.searchPlayer( playerName ); } @Override public String getColumnName(int column) { return columnNames[column]; } @Override public int getRowCount() { return players.size(); } @Override public int getColumnCount() { return 8; } @Override public Object getValueAt(int rowIndex, int columnIndex) { String result = “”; SoccerTO to = players.get( rowIndex ); switch ( columnIndex ) { case 0: result = to.getP_no(); break; case 1: result = to.getT_code(); break; case 2: result = to.getP_name(); break; case 3: result = to.getP_length(); break; case 4: result = to.getP_birth(); break; case 5: result = to.getP_weight(); break; case 6: result = to.getP_pos(); break; case 7: result = to.getP_backno(); break; } return result; } }

-TeamComboModel

package Pack_Model; import java.util.ArrayList; import javax.swing.DefaultComboBoxModel; import Pack_Team.TeamDAO; import Pack_Team.TeamTO; public class TeamComboModel extends DefaultComboBoxModel { ArrayList teams = new ArrayList(); public TeamComboModel() { TeamDAO dao = new TeamDAO(); teams = dao.selectTeam(); } @Override public int getSize() { return teams.size(); } @Override public Object getElementAt(int index) { String resultTeam = teams.get(index).getT_code() + “(” + teams.get(index).getT_name() + “)”; return resultTeam; } }

3. 최종 결과

정말 CRUD 기능만 구현을 했고 코드는 정리가 필요한 상태.

이후에 약간의 기능 및 디자인을 첨가해보자..ㅎ

728×90

반응형

LIST

So you have finished reading the 자바 미니 프로젝트 topic article, if you find this article useful, please share it. Thank you very much. See more: 자바초보프로젝트주제, 자바 미니 프로젝트 추천, Java 프로젝트 주제, 자바 팀 프로젝트 주제 추천, 자바 미니프로젝트 게임, 자바 스윙 프로젝트, 자바 은행 프로젝트, 자바 커피자판기

Leave a Comment