이 기사의 예제는 참조를 위해 Java Student Information Management System의 소스 코드의 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
1. StudetManage 클래스 (메인 인터페이스)
패키지 com.sms3; java.awt.*; javax.swing을 가져옵니다.*; import java.awt.event.*; 공개 클래스 학생 관리는 jframe 구현 actionlistener { / ** * @param args * / public static void main (string [] args) {// todo 자동 생성 메소드 스터브 New Studentmanage (); } // ======== 패널 제어 개인 jlabel querylab = null; 개인 jtextfield querytxt = null; 개인 JBUTTON QueryBtn = null; 개인 JBUTTON ALLBTN = NULL; 개인 jtable resulttb = null; 개인 jscrollpane jsp = null; Private JBUTTON ADDBTN = NULL; 개인 JBUTTON DELETEBTN = NULL; Private JBUTTON updateBtn = null; 개인 jpanel top = null; 개인 jpanel 바닥 = null; // ======= 개인 스토모델링 sm = null; // 생성자 공공 학생 관리자 () {/************************ 패널 제어 초기화 ********************************************** Query Bar QueryLab = New Jlabel ( "이름을 입력하십시오 :"); QueryTxt = New Jtextfield (10); QueryBtn = New JButton ( "Query"); AllBtn = New Jbutton ( "All"); //...... querybtn.addactionListener (this)를 듣는 쿼리 바; querybtn.setactionCommand ( "Query"); AllBtn.addactionListener (this); AllBtn.setActionCommand ( "All"); // =========== ADD-and-DELETION 열 ADDBTN = new JBUTTON ( "add"); deletebtn = new Jbutton ( "delete"); UpdateBtn = new JButton ( "modify"); //...... ADD and-DELETION 열 청취 ADDBTN.ADDACTIONLISTERE (this); addBtn.setActionCommand ( "add"); deletebtn.addactionListener (this); deletebtn.setactionCommand ( "delete"); deletebtn.addactionListener (this); deletebtn.setactionCommand ( "delete"); UpdateBtn.addactionListener (this); UpdateBtn.SetActionCommand ( "Update"); // ======== Window의 전체 레이아웃 생성 // ...... 상단 레벨 쿼리 바 상단 = 새로운 jpanel (); top.add (QueryLab); top.add (querytxt); top.add (querybtn); top.add (allbtn); // ...... 하단 레벨 ADD-and DENTION 열 바닥 = new jpanel (); bottom.add (addBtn); bottom.add (deletebtn); bottom.add (updatebtn); // ...... 미들 레벨 디스플레이 바 SM = New Stumodel (); 문자열 sql = "select * from stu"; sm.Querystu (SQL, NULL); resulttb = new Jtable (SM); jsp = 새로운 jscrollpane (resulttb); //...... 전체 레이아웃을 구성 this.add (상단, BorderLayout.north); this.add (JSP, BorderLayout.Center); this.add (하단, BorderLayout.South); // ======= Window 속성을 설정 this.setsize (400, 300); this.setDefaultCloseOperation (jframe.exit_on_close); this.set -Visible (true); this.setResizable (false); } // Listen @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand().equals("query")) { /***************************************/ //======= Get the name of the input student String name = queryTxt.getText().trim(); if (name.length ()! = 0) {// ======== 이름 이름 입력이 유효 할 때 쿼리를 실행하십시오 //...... 매개 변수 문자열 sql = "select *에서 stuname =?"; 문자열 [] paras = {name}; //...... 모델 JTableUpdate (SQL, Paras)를 업데이트합니다. } else {// =========== 이름이 비어 있으면 알림 JoptionPane.showMessagedIalog ( "이름 입력이 비어있을 수 없다")를 설정합니다. } } else if(e.getActionCommand().equals("add")) { /************************************/ new StuAddDialog(this, "Add student information", true); 문자열 sql = "select * from stu"; JTableUpdate (SQL, NULL); } else if (e.getActionCommand (). Equals ( "all")) { / ************************************* 모든 쇼 *************************** / String SQL = "Select*From STU"; JTableUpdate (SQL, NULL); } else if (e.getActionCommand (). equals ( "delete")) { /**************************** /// ======== 선택 줄 번호 int rownum = this.getSulttb.getSeltectedRow (); if (rownum == -1) {joptionpane.showmessagedialog ( "행을 선택하십시오"); 반품 ; } // ======== 학생 ID 번호 문자열 stuid = (문자열) sm.getValueat (rownum, 0); // ========= 학생 string sql = "stu에서 stuid =?"; 문자열 [] paras = {stuid}; Stumodel TMP = 새로운 스토모 델 (); TMP.CUDSTU (SQL, Paras); // ========== 모델 업데이트 모델 SQL = "SELECT * FROM STU"; JTableUpdate (SQL, NULL); } else if(e.getActionCommand().equals("update")) { /******************************Modify************************/ //========= Get the selection line number int rowNum = this.resultTb.getSelectedRow(); if (rownum == -1) {joptionpane.showmessagedialog ( "행을 선택하십시오"); 반품 ; } 새로운 stuupdatedialog (이것은 "학생 정보 수정", True, SM, Rownum); 문자열 sql = "select * from stu"; JTableUpdate (SQL, NULL); }} // ========== JTable public void jtableUpdate (String sql, string [] paras)에서 데이터 업데이트 {//.. sm.Querystu (SQL, Paras); //...... resulttb.setModel (SM)을 업데이트합니다. }}2. Stumodel Class (학생 데이터베이스 모델)
패키지 com.sms3; java.sql.resultset import; import java.util.vector; import javax.swing.table.abstracttablemodel; Public Class Stumodel은 AbstractTableModel을 확장합니다. 개인 벡터 로데데이트; // public stumodel () {String SQL = "select * from stu"; 문자열 [] paras = {}; } // ======== 학생 학생 추가 및 삭제 공개 부울 CUDSTU (String SQL, String [] Paras) {return new sqlhelper (). cudexecute (sql, paras); } // ========= 쿼리 쿼리 쿼리 쿼리 공개 void QueryStu (String SQL, String [] Paras) {SQLHELPER SQLHELPER = NULL; // ========= jtable Information ColumnNames 초기화 = new vector (); RowDates = New Vector (); columnnames.add ( "학생 번호"); columnNames.add ( "이름"); columnnames.add ( "성별"); columnnames.add ( "Age"); columnNames.add ( "홈"); columnnames.add ( "part"); try {sqlhelper = new sqlhelper (); resultSet rs = sqlhelper.queryExecute (SQL, Paras); while (rs.next ()) {vector row = new vector (); row.add (rs.getstring (1)); row.add (rs.getstring (2)); row.add (rs.getstring (3)); row.add (rs.getstring (4)); row.add (rs.getstring (5)); row.add (rs.getstring (6)); rowdates.add (행); }} catch (예외 e) {// todo : handle exception} 마침내 {sqlhelper.close (); }} @override public int getColumnCount () {// todo 자동 생성 메소드 스터브 return this.columnnames.size (); } @override public int getRowCount () {// todo 자동 생성 메소드 스텁 return this.rowdates.size (); } @override public object getValueat (int row, int col) {// todo 자동 생성 메소드 스터브 if (! rowdates.isempty ()) return ((vector) this.rowdates.get (row)). get (col); 그렇지 않으면 널을 반환합니다. } @override public String getColumnName (int column) {// todo 자동 생성 메소드 스터브 리턴 (string) this.columnnames.get (column); }}3. StuaddDialog 클래스 (학생 정보 하위 인터페이스 추가)
패키지 com.sms3; java.awt.borderlayout import; java.awt.dialog import; import java.awt.frame; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionListener; javax.swing을 가져옵니다.*; 공개 클래스 stuadddialog는 jdialog empless actionlistener {// ========= 패널 컨트롤을 확장합니다. {// ======== 패널 컨트롤 // ...... 왼쪽 타이틀 바 개인 jlabel idlab, namelab, sexlab, agelab, jglab, deptlab; //.......... 권리의 정보를 선택하여 개인 jtextfield idtxt, nametxt, sextxt, agetxt, jgtxt, depttxt; //...... ADD 및 취소 버튼 개인 JBUTTON ADDBTN, CANCELBTN; //................ 컨트롤 개인 jpanel 왼쪽, 중앙, 하단; // 생성자 public stuadddialog (프레임 소유자, 문자열 제목, 부울 모달) {// ======== 부모 클래스 메소드 수퍼 (소유자, 제목, 모달); // =========== 왼쪽의 태그 열은 idlab = new Jlabel ( "학생 번호 :"); namelab = new Jlabel ( "이름 :"); sexlab = new Jlabel ( "성별 :"); Agelab = New Jlabel ( "Age :"); jglab = New Jlabel ( "고향 :"); Deptlab = New Jlabel ( "방향 :"); // ========= 오른쪽의 정보 열을 채우십시오. idtxt = new jtextfield (); nametxt = new jtextfield (); sextxt = new Jtextfield (); agetxt = new Jtextfield (); agetxt = new Jtextfield (); agetxt = new Jtextfield (); jgtxt = 새로운 jtextfield (); depttxt = 새로운 jtextfield (); // ========== 버튼 추가 및 취소 addBtn = new JBUTTON ( "add"); CANCELBTN = NEW JBUTTON ( "취소"); //...... addbtn.addactionListener (this)를 듣습니다. addBtn.setActionCommand ( "add"); CancelBtn.addactionListener (this); cancelBtn.setActionCommand ( "취소"); // ======= 레이아웃 생성 // ...... 왼쪽 열 만들기 = new jpanel (); LEFT.SETLAYOUT (New GridLayout (6, 1)); left.add (idlab); left.add (namelab); left.add (sexlab); left.add (Agelab); left.add (jglab); left.add (deptlab); //...... 오른쪽 열 중심을 만듭니다. = new JPanel (); Center.SetLayout (New GridLayout (6, 1)); center.add (idtxt); center.add (nametxt); center.add (sextxt); center.add (agetxt); center.add (jgtxt); center.add (depttxt); // ================== 기본 추가 및 취소 버튼 하단 = 새로운 jpanel (); bottom.add (addBtn); bottom.add (cancelbtn); // ========= 전체 레이아웃 this.add (왼쪽, BorderLayout.West); this.add (Center, BorderLayout.Center); this.add (하단, BorderLayout.South); // ========== Window 속성 세트 this.SetSize (300, 250); this.setResizable (false); this.set -Visible (true); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getActionCommand().equals("add")) { /*********************************************/ StuModel tmp = new StuModel(); 문자열 sql = "stu 값에 삽입 (?,?,?,?,?); 문자열 [] paras = {idtxt.getText (), nametxt.getText (), sextxt.getText (), agetxt.getText (), jgtxt.getText (), depttxt.getText ()}; if (! tmp.cudstu (sql, paras)) joptionpane.showmessagedialog (이것은 "학생 정보 추가 실패"); // ======== 창을 닫습니다 .dispose (); } else if (e.getActionCommand (). Equals ( "cancel")) {// ======== 창을 닫습니다 .dispose (); }}}4. stuupdatedialog 클래스 (학생 정보 하위 인터페이스 수정)
패키지 com.sms3; java.awt.borderlayout import; import java.awt.frame; import java.awt.gridlayout; import java.awt.event.actionevent; import java.awt.event.actionListener; import javax.swing.jbutton; import javax.swing.jdialog; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jpanel; import javax.swing.jpanel; import javax.swing.jtextfield; import javax.swing.table.abstracttablemodel; 공개 클래스 stuupdatedialog는 jdialog emplements actionlistener {// ========= 패널 컨트롤 // ...... 왼쪽 타이틀 바 개인 jlabel idlab, namelab, sexlab, agelab, jglab, deptlab; //....... 오른쪽 정보를 선택하여 개인 jtextfield idtxt 열에서 채우기, nametxt, sextxt, agetxt, jgtxt, depttxt; //.. //................ 컨트롤 개인 jpanel 왼쪽, 중앙, 하단; // 생성자 public stuupdatedialog (프레임 소유자, 문자열 제목, 부울 모달, 스토모드 SM, int rownum) {// ======== 부모 클래스 메서드 수퍼 (소유자, 제목, 모달)를 다시 작성합니다. // =========== 왼쪽 레이블 바 IDLAB = New Jlabel ( "학생 번호 :"); namelab = new Jlabel ( "이름 :"); sexlab = new Jlabel ( "성별 :"); Agelab = New Jlabel ( "Age :"); jglab = New Jlabel ( "고향 :"); Deptlab = New Jlabel ( "치수 :"); // ======== 오른쪽의 정보를 채우십시오 idtxt = new Jtextfield (); idtxt.settext ((String) sm.getValueat (rownum, 0)); idtxt.seteditable (false); nametxt = new jtextfield (); nametxt.settext ((String) sm.getValueat (rownum, 1)); sextxt = new Jtextfield (); sextxt.settext ((String) sm.getValueat (rownum, 2)); agetxt = new Jtextfield (); agetxt.settext ((String) sm.getValueat (rownum, 3)); jgtxt = 새로운 jtextfield (); jgtxt.settext ((String) sm.getValueat (rownum, 4)); depttxt = 새로운 jtextfield (); depttxt.settext ((String) sm.getValueat (rownum, 5)); // ======== 버튼 추가 및 취소 addBtn = new JButton ( "modify"); CANCELBTN = NEW JBUTTON ( "취소"); //...... addbtn.addactionListener (this)를 듣습니다. addBtn.setActionCommand ( "Update"); CancelBtn.addactionListener (this); cancelBtn.setActionCommand ( "취소"); // ======== 레이아웃 생성 // ...... 왼쪽 생성 = new JPanel (); LEFT.SETLAYOUT (New GridLayout (6, 1)); left.add (idlab); left.add (namelab); left.add (sexlab); left.add (Agelab); left.add (jglab); left.add (deptlab); //...... 오른쪽 열 중심을 만듭니다. = new JPanel (); Center.SetLayout (New GridLayout (6, 1)); center.add (idtxt); center.add (nametxt); center.add (sextxt); center.add (agetxt); center.add (jgtxt); center.add (depttxt); // ============ 하단 레이어 추가 및 취소 버튼 하단 = 새 JPANEL (); bottom.add (addBtn); bottom.add (cancelbtn); // ======== 전체 레이아웃 this.add (왼쪽, BorderLayout.West); this.add (Center, BorderLayout.Center); this.add (하단, BorderLayout.South); // ========== Window 속성 세트 this.SetSize (300, 250); this.setResizable (false); this.set -Visible (true); } @override public void actionPerformed (ActionEvent e) {// todo 자동 생성 메소드 스터브 if (e.getActionCommand (). equals ( "update")) { / ****************************************************** / stumodel tmp = new Stumodel (); 문자열 sql = "stu set stuname =?, stusex =?, stuage =?, stujg =?, StudePt =? Stuid =?"; 문자열 [] paras = {nametxt.getText (), sextxt.getText (), agetxt.getText (), jgtxt.getText (), depttxt.getText (), idtxt.getText ()}; if (! tmp.cudstu (sql, paras)) joptionpane.showmessagedialog (이것은 "학생 정보를 수정하지 못했다"); // ======== 창을 닫습니다 .dispose (); } else if (e.getActionCommand (). Equals ( "cancel")) {// ======== 창을 닫습니다 .dispose (); }}} 5. SQLHELPER 클래스 (가장 낮은 데이터베이스 클래스)
패키지 com.sms3; Java.sql.*; 공개 클래스 SQLHELPER {// ========= 데이터베이스 개인 연결 CT = NULL; 개인 준비 상태 ps = null; 개인 결과 세트 RS = NULL; 개인 문자열 드라이버 = "com.microsoft.sqlserver.jdbc.sqlserverdriver"; 개인 문자열 URL = "JDBC : SQLSERVER : //127.0.0.1 : 1433; Database = Studentman"; 개인 문자열 user = "SA"; 개인 문자열 passwd = "****"; // ========== Query public resultset queryExecute (String SQL, String [] paras) {try {// ======= 1. 드라이버 클래스를로드합니다 .forname (드라이버); // ======= 2. ct = drivermanager.getConnection (url, user, passwd)을 연결합니다. // ======= 3. preparedstatement ps = ct.preparestatement (SQL)를 작성합니다. // ======= 4. (paras! = null) {for (int i = 0; i <paras.length; i ++) {ps.setString (i+1, paras [i]); }} // ====== 5. rs = ps.ExecuteQuery ()를 실행합니다. } catch (예외 e) {// todo : 핸들 예외 e.printstacktrace (); } 마침내 {//this.close (); } // ========= 반환 값 반환 rs; } // ======== 공개 부울 뮤트 (string sql, string [] paras) {boolean b = true; {// ======== 1을 시도하십시오. 드라이버 클래스를로드합니다 .forname (드라이버); // ====== 2. ct = drivermanager.getConnection (url, user, passwd)을 연결합니다. // ====== 3. preparedstatement ps = ct.preparestatement (SQL)를 작성합니다. // ======= 4. (int i = 0; i <paras.length; i ++) {ps.setString (i+1, paras [i])에 대한 물음표에 값을 할당합니다. } // ======= 5. if (ps.ExecuteUpdate ()! = 1) b = false; } catch (예외 e) {// todo : 핸들 예외 b = false; e.printstacktrace (); } 마침내 {this.close (); } // ========== 반환 값 반환 b; } // ========== 닫기 자원 공개 void close () {try {if (rs! = null) rs.close (); if (ps! = null) ps.close (); if (ct! = null) ct.close (); } catch (예외 e2) {// todo : 핸들 예외 e2.printstacktrace (); }}}메인 인터페이스
학생 정보 인터페이스를 추가하십시오
학생 정보 인터페이스를 수정하십시오
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.