본문 바로가기
자바 스윙 (Java Swing)

Java Swing (6) 한국 축구 구단 관리 프로그램 (자바 스윙 프로젝트)

by s_hoonee 2023. 1. 2.
반응형

2022 한국 축구 구단 관리 프로그램

(6) 경기장

경기장 프레임

기능

1. 버튼이나 경기장 이름을 클릭하여 경기장들의 정보를 볼 수 있습니다.

2. 우측 하단 사이트 바로가기 기능을 이용하면 등록된 url이 자신의 기본 브라우저로 열립니다.

@Override
	public void mouseClicked(MouseEvent e) {
		Component component = e.getComponent();
		if (component == sangadress || component == sang) {
			i = 0;
			sta_lbl.setIcon(imgsta[0]);

			ta_next.setText("        [서울 상암 월드컵 경기장] ");
			ta_info.setText(seoul_lbl);
		} else if (component == suwonadress || component == suwon) {
			sta_lbl.setIcon(imgsta[1]);
			i = 1;
			ta_next.setText("        [수원 월드컵 경기장]  ");
			ta_info.setText(suwon_lbl);
		} else if (component == incheonadress || component == incheon) {
			sta_lbl.setIcon(imgsta[2]);
			i = 2;
			ta_next.setText("        [인천 문학 경기장]  ");
			ta_info.setText(incheon_lbl);
		} else if (component == gwangjuadress || component == gwangju) {
			i = 3;
			sta_lbl.setIcon(imgsta[3]);
			ta_next.setText("        [광주 월드컵 경기장]  ");
			ta_info.setText(gwongju_lbl);
		} else if (component == jeonjuadress || component == jeonju) {
			sta_lbl.setIcon(imgsta[4]);
			i = 4;
			ta_next.setText("        [전주 월드컵 경기장]  ");
			ta_info.setText(jeonju_lbl);
		} else if (component == url_Seo) {
			if (Desktop.isDesktopSupported()) {
				Desktop desktop = Desktop.getDesktop();
				try {
					if (i == 0) {
						URI uri = new URI(
								"https://namu.wiki/w/%EC%84%9C%EC%9A%B8%EC%9B%94%EB%93%9C%EC%BB%B5%EA%B2%BD%EA%B8%B0%EC%9E%A5");
						url_Seo.setForeground(Color.BLUE);
						desktop.browse(uri);
					} else if (i == 1) {
						URI uri = new URI(
								"https://namu.wiki/w/%EC%88%98%EC%9B%90%EC%9B%94%EB%93%9C%EC%BB%B5%EA%B2%BD%EA%B8%B0%EC%9E%A5");
						url_Seo.setForeground(Color.BLUE);
						desktop.browse(uri);
					} else if (i == 2) {
						URI uri = new URI(
								"https://namu.wiki/w/%EC%9D%B8%EC%B2%9C%EB%AC%B8%ED%95%99%EA%B2%BD%EA%B8%B0%EC%9E%A5");
						url_Seo.setForeground(Color.BLUE);
						desktop.browse(uri);
					} else if (i == 3) {
						URI uri = new URI(
								"https://namu.wiki/w/%EA%B4%91%EC%A3%BC%EC%9B%94%EB%93%9C%EC%BB%B5%EA%B2%BD%EA%B8%B0%EC%9E%A5");
						url_Seo.setForeground(Color.BLUE);
						desktop.browse(uri);
					} else if (i == 4) {
						URI uri = new URI(
								"https://namu.wiki/w/%EC%A0%84%EC%A3%BC%EC%9B%94%EB%93%9C%EC%BB%B5%EA%B2%BD%EA%B8%B0%EC%9E%A5");
						url_Seo.setForeground(Color.BLUE);
						desktop.browse(uri);
					}

				} catch (IOException ex) {
					ex.printStackTrace();
				} catch (URISyntaxException ex) {
					ex.printStackTrace();
				}
			}
		}

	}

 


 

(7) 식단

식단 프레임

기능

1. 음식, 음료를 콤보박스에서 선택하여 추가하여 하단 주문내역에 포함 할 수 있다.

2. 일괄 결제로 주문하고 등록된 열량, 칼로리 등을 확인한다. 

  @Override
   public void actionPerformed(ActionEvent e) {
      Object obj = e.getSource();
      if (obj == food_add_btn) { // 음식 추가 버튼 클릭이벤트 처리
         // TODO 입력된 값 테이블에 추가하기
         String info[] = new String[2]; // 한행 (row) 에 저장할 데이터 모음
         info[0] = food_combo.getSelectedItem().toString(); // 콤보박스 값을 가져온다
         info[1] = "5000";
         model.addRow(info); // 테이블 모델에 데이터 삽입 실시
         pay_list.add(food_combo.getSelectedItem().toString() + " : " + "5000"); // 결제 금액 리스트에 추가
      } else if (obj == drink_add_btn) { // 음식 추가 버튼 클릭이벤트 처리
         // TODO 입력된 값 테이블에 추가하기
         String info[] = new String[2]; // 한행 (row) 에 저장할 데이터 모음
         info[0] = drink_combo.getSelectedItem().toString(); // 콤보박스 값을 가져온다
         info[1] = "3000";
         model.addRow(info); // 테이블 모델에 데이터 삽입 실시
         pay_list.add(drink_combo.getSelectedItem().toString() + " : " + "3000"); // 결제 금액 리스트에 추가
      } else if (obj == paybtn) { // 결제 버튼 클릭이벤트 처리
         /** TODO [질문 알림창] */
         int qut_data = JOptionPane.showConfirmDialog(null, "주문을 결제하시겠습니까??", "주문내역", JOptionPane.YES_NO_OPTION);
         if (qut_data == 0) { // [예] 버튼
            JOptionPane.showMessageDialog(null, "결제되었습니다." + "\n" + "[주문내역]\n" + pay_list.toString());
            model.setNumRows(0);
         } else if (qut_data == 1) { // [아니오] 버튼
            JOptionPane.showMessageDialog(null, "취소되었습니다.");
            model.setNumRows(0);
         } 
        
      } else if (obj == delbtn) { // 삭제 버튼 클릭이벤트 처리
         // 선택한 줄(row)의 번호 알아내기
         int rowIndex = table.getSelectedRow();

         // 선택 안하고 누를 경우 리턴값 -1
         if (rowIndex == -1) {
            return;
         }
         model.removeRow(rowIndex); // 해당 테이블 행 삭제
         pay_list.remove(rowIndex); // 결제 금액 리스트에서도 삭제 실시
      }

 

 

모든 기능을 포함하진 않고 몇개만 간략하게 뽑았습니다. 자세한 코드가 궁금하신 분은 댓글에 알려주세요!