Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- vmware 로컬 웹서버 접근
- 특정 포트 확인
- 도메인 웹호스팅 다를 경우
- local 저장소 개별 관리
- 면접
- xml 406
- 특정 포트 보기
- 도메인 웹호스팅
- VMware 네트워크 이상
- e175002
- 이클립스 svn 설치
- 406호출
- 공공api xml
- 특정 포트 연결 해제
- centos jeus 웹서버 접근
- 저장소 개별
- 저장소 관리
- svn e175002
- 도메인 서버
- 저장소 개별 관리
- 도메인 웹호스팅 다를 때
- json 에러
- json xml 에러
- xml 에러
- github
- 특정 포트 해제
- 페이징 처리
- 도메인 웹호스팅 다름
- 이클립스 중단
- 이클립스 로딩
Archives
- Today
- Total
LIFE & IT
JAVA 학사관리 프로그램 Student_Takecourse.java 본문
좀 더 논리 정연하고 효율적인 방법 구상중
리스트 배열 선언
ArrayList<String> addList = new ArrayList<String>();
ArrayList<String> crsNum = new ArrayList<String>();
ArrayList<String> crsName = new ArrayList<String>();
ActionListener 내용
1. 추가 버튼 ( add ) 로직 내용
1) 추가 버튼을 누르게 되면 user 가 선택한 과목이 리스트 테이블에 추가 된다.
2) user 가 가장 마지막으로 추가한 선택된 과목이 이미 테이블에 추가된 과목과 같다면 중복이 되기
때문에 가장 마지막으로 추가한 선택된 과목을 Table에 추가한 후 중복 제거 로직으로 제거 한다.
3) user 가 연속적으로 동일한 과목을 선택 추가 시도 하려 한다면, "이벤트 메세지"를 발생한다.
if(e.getSource() == add){ // -- [ 추가 ] button
model = (DefaultTableModel) table.getModel();
arr[0] = course_box.getSelectedItem().toString(); // 과목명
arr[1] = crsCredit_tf.getText(); // 시수/학점
arr[2] = crsProName_tf.getText(); // 교수
model.addRow(arr);
// 추가 된 값 전역 list 에 추가
addList.add(arr[0]);
addList.add(dto_takecourse.get_crsNum());
if(model.getRowCount()>1) {
for(int i = 0 ; i <= model.getRowCount()-2 ; i++) {
if(course_box.getSelectedItem().toString().equals(model.getValueAt(i, 0))){
model.removeRow(model.getRowCount()-1);
//list 에서 중복되는 최신 값을 제거 하기 위한 로직.
//size()-index 1 부터 시작
addList.remove(addList.size()-2);
addList.remove(addList.size()-2);
} // - if-END
}// - for -END
} // -if(model.getRowCount()>1) -END
}else if(course_box.getSelectedItem().equals(model.getValueAt(model.getRowCount(), 0))){
JOptionPane.showMessageDialog(null, "동일한 과목을 선택하셨습니다!");
2. 등록( = commit ) 버튼 내용
1) 유저가 선택한 최종 table 의 리스트 값을 2 개의 List 배열로 과목이름(crsName), 과목번호(crsNum)로
나누어 담는다.
- 앞 서 추가 버튼의 로직에서 List 에 담겨진 값들은 과목이름, 과목번호가 나열되어 있기 때문이다.
2) 두 개의 List 배열을 for문을 이용하여 각각 DML 에 필요한 parameter 로 넘겨준다.
if(e.getSource() == commit ){ // -- [ 등록 ] button
// addList 의 값을 홀수, 짝수 으로 나누어 crsName, crsNum 의 List 에 나누어 담는다.
for(int i = 0 ; i < addList.size() ; i = i+2) {
crsName.add(addList.get(i));
}
for(int i = 1 ; i < addList.size() ; i = i+2) {
crsNum.add(addList.get(i));
}
// 두개의 List 배열을 각각 맞는 param 에 넣어준다.
for(int i = 0 ; i < crsName.size() ; i++) {
//Data 에 저장 로직 학번 과목 번호 과목 이름
dao_std.insert_course_add( stdNum, crsNum.get(i), crsName.get(i));
}
JOptionPane.showMessageDialog(null, "등록 완료 되었습니다.!");
}// [ 등록 ] button END --
▷ 도저히 코드 내용 정렬을 할 수가 없어서 원본 파일 을 첨부.