반응형
2022 한국 축구 구단 관리 프로그램
(3) 포메이션
1. 선발 선수들의 번호를 가져와 필드의 라벨에 텍스트를 입히고 라벨의 좌표를 변경하여 포메이션을 지정할 수 있습니다.
2. 포메이션은 A,B 타입을 각 각 설정이 가능합니다.
//기본 좌표값
private void formationA() {
lbl2.setLocation(669, 425);
lbl3.setLocation(741, 325);
lbl4.setLocation(741, 205);
lbl5.setLocation(669, 103);
lbl6.setLocation(367, 417);
lbl7.setLocation(462, 191);
lbl8.setLocation(462, 334);
lbl9.setLocation(367, 90);
lbl10.setLocation(111, 330);
lbl11.setLocation(111, 195);
}
private void formationB() {
lbl2.setLocation(669, 425);
lbl3.setLocation(741, 325);
lbl4.setLocation(741, 205);
lbl5.setLocation(669, 103);
lbl6.setLocation(437, 265);
lbl7.setLocation(406, 370);
lbl8.setLocation(406, 155);
lbl9.setLocation(330, 465);
lbl10.setLocation(330, 70);
lbl11.setLocation(139, 270);
}
@Override
public void mouseDragged(MouseEvent e) {
Object obj = e.getSource();
int x = e.getX();
int y = e.getY();
if ( obj == lbl2 ) {
lbl2.setLocation(lbl2.getX()+x-50, lbl2.getY()+y-30);
} else if ( obj == lbl3 ) {
lbl3.setLocation(lbl3.getX()+x-50, lbl3.getY()+y-30);
} else if ( obj == lbl4 ) {
lbl4.setLocation(lbl4.getX()+x-50, lbl4.getY()+y-30);
} else if ( obj == lbl5 ) {
lbl5.setLocation(lbl5.getX()+x-50, lbl5.getY()+y-30);
} else if ( obj == lbl6 ) {
lbl6.setLocation(lbl6.getX()+x-50, lbl6.getY()+y-30);
} else if ( obj == lbl7 ) {
lbl7.setLocation(lbl7.getX()+x-50, lbl7.getY()+y-30);
} else if ( obj == lbl8 ) {
lbl8.setLocation(lbl8.getX()+x-50, lbl8.getY()+y-30);
} else if ( obj == lbl9 ) {
lbl9.setLocation(lbl9.getX()+x-50, lbl9.getY()+y-30);
} else if ( obj == lbl10 ) {
lbl10.setLocation(lbl10.getX()+x-50, lbl10.getY()+y-30);
} else if ( obj == lbl11 ) {
lbl11.setLocation(lbl11.getX()+x-50, lbl11.getY()+y-30);
}
}
(4) 부상자 관리
DB에 부상자 테이블이 삭제되어서 Jtable에 필드값이 로딩이 안되지만 create문 복붙을 지워버렸고 다시 쓰기 귀찮으니 pass
1. 우측 '선수 리스트' 에서 ROW를 클릭 or 검색 하여 선택 후 '부상 추가' 버튼을 눌러 옵션을 선택 한 후 부상자 명단에 선수를 추가할 수 있습니다.
2. 부상자를 다시 기존 테이블로 옮길 수 있고 옵션에 기간 등을 추가하여 시간이 경과하면 자동으로 부상자 테이블에서 삭제되는 기능도 추가 할 예정입니다.
@Override
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
String pn = null;
String name = null;
String age = null;
String height = null;
String weight = null;
String position = null;
// 부상자 추가--------------------------------------
if (obj == addInjuryBtn)
{
int select = playerTable.getSelectedRow(); // 선택된 행의 값을 int 값으로 select에 저장
if (JOptionPane.showConfirmDialog(this, "선수를 부상명단에 추가하시겠습니까?", "추가", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) {
new InjurySelect(select);
}
}
// 부상자 삭제--------------------------------------
if (obj == addDeleteBtn)
{
int select = injuryPlayerTable.getSelectedRow(); // 선택된 행의 값을 int 값으로 select에 저장
sql = "select * from INJURYPLAYER";
ResultSet rs = DB.getResult(sql);
for (int i = 0; i < select + 1; i++) {
try {
rs.next();
pn = rs.getString("PN");
name = rs.getString("NAME");
age = rs.getString("AGE");
height = rs.getString("HEIGHT");
weight = rs.getString("WEIGHT");
position = rs.getString("POSITION");
} catch (SQLException e1) {
e1.printStackTrace();
}
}
if (JOptionPane.showConfirmDialog(this, "부상 선수를 명단에서 삭제하시겠습니까?", "삭제", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION)
{
// 부상 선수 명단에 값을 추가하고, 추가된 값과 동일한 값을 선수 리스트에서 삭제
// 부상 선수명단에서 삭제--------------------------------------
sql = "DELETE FROM CBAN.INJURYPLAYER\r\n" + "WHERE PN=" + pn + "";
DB.executeSQL(sql);
// 선수 리스트에 값 추가--------------------------------------
sql = "INSERT INTO CBAN.PLAYER\r\n" + "(PN, NAME, AGE, HEIGHT, WEIGHT, \"POSITION\")\r\n" + "VALUES("
+ pn + ", '" + name + "', " + age + ", " + height + ", " + weight + ", '" + position + "')";
DB.executeSQL(sql);
new InjuryPlayerFrame("구단 관리 프로그램");
dispose();
}
//
String InjArea = null;
String InjSymptom = null;
if (obj == button)
{
sql = "select * from PLAYER";
ResultSet rs = DB.getResult(sql);
for (int i = 0; i < selectnum + 1; i++) {
try {
rs.next();
InjPn = rs.getString("PN");
InjName = rs.getString("NAME");
InjAge = rs.getString("AGE");
InjHeight = rs.getString("HEIGHT");
InjWeight = rs.getString("WEIGHT");
InjPosition = rs.getString("POSITION");
} catch (SQLException e1) {
e1.printStackTrace();
}
}
// 콤보박스에서 선택된 값을 InjArea에 저장 -------------------------------------
InjArea = areaCombobox.getSelectedItem().toString();
// 콤보박스에서 선택된 값을 InjSymptom에 저장 -------------------------------------
InjSymptom = syptomCombobox.getSelectedItem().toString();
// 부상 선수 명단에 값을 추가하고, 추가된 값과 동일한 값을 선수 리스트에서 삭제
// 부상 선수 명단에 값 추가 -------------------------------------
sql = "INSERT INTO CBAN.INJURYPLAYER\r\n"
+ "(PN, NAME, AGE, HEIGHT, WEIGHT,INJURYAREA,INJURYSYMPTOM, \"POSITION\")\r\n" + "VALUES(" + InjPn
+ ", '" + InjName + "', '" + InjAge + "', '" + InjHeight + "', '" + InjWeight + "', '" + InjArea
+ "', '" + InjSymptom + "', '" + InjPosition + "')";
DB.executeSQL(sql);
// 선수 리스트에서 삭제 -------------------------------------
sql = "DELETE FROM CBAN.PLAYER\r\n" + "WHERE PN=" + InjPn + "";
DB.executeSQL(sql);
// DB 수정된 부분 반영하기 위해 클래스 재 호출(창 다시 켜기) -------------------------------------
new InjuryPlayerFrame("구단 관리 프로그램");
}
모든 기능을 포함하진 않고 몇개만 간략하게 뽑았습니다. 자세한 코드가 궁금하신 분은 댓글에 알려주세요!
'자바 스윙 (Java Swing)' 카테고리의 다른 글
Java Swing (6) 한국 축구 구단 관리 프로그램 (자바 스윙 프로젝트) (0) | 2023.01.02 |
---|---|
Java Swing (5) 한국 축구 구단 관리 프로그램 (자바 스윙 프로젝트) (2) | 2023.01.02 |
Java Swing (3) 한국 축구 구단 관리 프로그램 (자바 스윙 프로젝트) (0) | 2023.01.01 |
Java Swing (2) 한국 축구 구단 관리 프로그램 (자바 스윙 프로젝트) (0) | 2023.01.01 |
Java Swing (1) 축구 구단 관리 프로그램 (자바 스윙 프로젝트) (0) | 2022.12.31 |