تشترك الأمثلة الواردة في هذه المقالة في الرمز المحدد للرمز المصدر لنظام إدارة معلومات طالب Java للرجوع إليه. المحتوى المحدد كما يلي
1. فئة إدارة الدراسة (الواجهة الرئيسية)
حزمة com.sms3 ؛ استيراد java.awt.*؛ استيراد javax.swing.*؛ استيراد java.awt.event.*؛ يمتد طالب الطالب العام في الطبقة العامة التي تقوم بها JFrame بتنفيذ ActionListener { / ** * param args * / public static void main (string [] args) {// todo method method method method tuto coll New StudentAge () ؛ } // ========= لوحة التحكم الخاصة JLabel QueryLab = null ؛ خاص jtextfield querytxt = null ؛ الخاص jbutton querybtn = null ؛ الخاص jbutton allbtn = null ؛ private jtable resulttb = null ؛ jscrollpane private jsp = null ؛ خاص jbutton addbtn = null ؛ خاص jbutton deleteBtn = null ؛ jbutton private updateBtn = null ؛ خاص jpanel top = null ؛ قاع jpanel الخاص = فارغ ؛ // ======== STUMODEL SM = NULL ؛ // Constructor Public JustomAnage () {/************************** Eritive the Panel Control ********************/// ============ Query Bar QueryLab = New Jlabel ("الرجاء إدخال اسم:") ؛ QueryTxt = New JTextField (10) ؛ QueryBtn = New Jbutton ("Query") ؛ allbtn = new jbutton ("All") ؛ //...... add query bar للاستماع إلى QueryBtn.AddActionListener (هذا) ؛ QueryBtn.SetActionCommand ("Query") ؛ allbtn.addActionListener (هذا) ؛ allbtn.setActionCommand ("All") ؛ . DELETEBTN = New JButton ("delete") ؛ updateBtn = New JButton ("Modify") ؛ //...... add add-and-حذف عمود الاستماع addbtn.addActionListener (this) ؛ addbtn.setActionCommand ("add") ؛ DELETEBTN.AddActionListener (this) ؛ DELETEBTN.SetActionCommand ("delete") ؛ DELETEBTN.AddActionListener (this) ؛ DELETEBTN.SetActionCommand ("delete") ؛ updateBtn.AddActionListener (هذا) ؛ updateBtn.SetActionCommand ("تحديث") ؛ . Top.Add (QueryLab) ؛ Top.Add (QueryTxt) ؛ Top.Add (QueryBtn) ؛ Top.Add (allbtn) ؛ // ...... أسفل عمود الإضافات والحماس على مستوى القاع = JPanel () جديد ؛ Bottom.Add (AddBtn) ؛ Bottom.add (deleteBtn) ؛ Bottom.add (updateBtn) ؛ // ...... شريط عرض المستوى المتوسط SM = جديد Stumodel () ؛ String SQL = "SELECT * FROM STU" ؛ sm.querystu (SQL ، NULL) ؛ resulttb = new jtable (sm) ؛ JSP = New JScrollPane (resulttb) ؛ //...... بناء التصميم الكلي this.add (Top ، BorderLayout.north) ؛ this.add (jsp ، borderlayout.center) ؛ this.add (أسفل ، borderlayout.south) ؛ // ======= تعيين خاصية النافذة this.setsize (400 ، 300) ؛ this.setDefaultCloseOperation (jframe.exit_on_close) ؛ this.setVisible (صحيح) ؛ this.setResible (false) ؛ }. if (name.length ()! = 0) {// ========= عندما يكون إدخال الاسم صالحًا ، قم بتنفيذ الاستعلام //...... String [] paras = {name} ؛ //...... update النموذج jtableupdate (SQL ، Paras) ؛ } آخر {// ============ عندما يكون الاسم فارغًا ، قم بتعيين تذكير joptionpane.showmessagedialog (هذا ، "إدخال الاسم لا يمكن أن يكون فارغًا") ؛ }} آخر إذا (e.getActionCommand (). يساوي ("إضافة")) { / ********************************** / new Stuadddialog (هذا ، "إضافة معلومات الطالب" ، صحيح) ؛ String SQL = "SELECT * FROM STU" ؛ JTableUpdate (SQL ، NULL) ؛ } آخر إذا (e.getActionCommand (). يساوي ("الكل")) { / ******************************************************************************************* / String Sql = "Select*from Stu" ؛ JTableUpdate (SQL ، NULL) ؛ } آخر إذا (e.getActionCommand (). يساوي ("حذف")) { /************************************ /// ======== احصل على رقم خط الاختيار if (rownum == -1) {joptionpane.showmessagedialog (هذا ، "الرجاء تحديد صف") ؛ يعود ؛ } // ========= احصل على سلسلة معرف الطالب Stuid = (String) sm.getValueat (rownum ، 0) ؛ // ========= حذف سلسلة الطلاب sql = "حذف من stu حيث stuid =؟" ؛ سلسلة [] paras = {stuid} ؛ Stumodel TMP = New Stumodel () ؛ TMP.Cudstu (SQL ، Paras) ؛ // ========== التحديث نموذج SQL = "SELECT * FROM STU" ؛ JTableUpdate (SQL ، NULL) ؛ } آخر إذا (E.GetActionCommand (). يساوي ("تحديث")) { /****************************** تعديل ********************** /// ======== احصل if (rownum == -1) {joptionpane.showmessagedialog (هذا ، "الرجاء تحديد صف") ؛ يعود ؛ } stuupdatedialog جديد (هذا ، "تعديل معلومات الطالب" ، صحيح ، SM ، Rownum) ؛ String SQL = "SELECT * FROM STU" ؛ JTableUpdate (SQL ، NULL) ؛ }} // ============ تحديث البيانات في jtable public void jtableupdate (String SQL ، String [] paras) {//...create model sm = new Stumodel () ؛ Sm.Querystu (SQL ، Paras) ؛ //...... update resulttb.setModel (sm) ؛ }}2. فئة Stumodel (نموذج قاعدة بيانات الطلاب)
حزمة com.sms3 ؛ استيراد java.sql.resultset ؛ استيراد java.util.vector ؛ استيراد javax.swing.table.abstractTableModel ؛ الطبقة العامة stumodel يمتد ملخصية {private vector columnnames ؛ rowdates ناقلات خاصة. // public Stumodel () {String sql = "select * from stu" ؛ سلسلة [] paras = {} ؛ } // ========= add وحذف الطلاب boolean cudstu (سلسلة SQL ، String [] paras) {return new sqlhelper (). cudexecute (SQL ، Paras) ؛ } // ========= Query الطالب الفراغ العام QueryStu (String SQL ، String [] paras) {sqlhelper sqlhelper = null ؛ // ========= تهيئة jtable المعلومات الأسماء = new Vector () ؛ ROWDATES = New Vector () ؛ ColumnNames.Add ("رقم الطالب") ؛ ColumnNames.add ("الاسم") ؛ ColumnNames.Add ("الجنس") ؛ ColumnNames.Add ("العمر") ؛ ColumnNames.Add ("الصفحة الرئيسية") ؛ ColumnNames.Add ("part") ؛ حاول {sqlHelper = new sqlhelper () ؛ resultset rs = sqlhelper.queryexecute (sql ، paras) ؛ بينما (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 (ROW) ؛ }} catch (استثناء e) {// todo: Handled exception} أخيرًا {sqlhelper.close () ؛ }} Override public int getColumnCount () {// todo method method method tuto return this.columnnames.size () ؛ } Override public int getRowCount () {// todo method method method tuto return this.rowdates.size () ؛ } Override Public Object GetValueat (int row ، int col) {// todo method method method tuto if (! rowdates.isempty ()) return ((vector) this.rowdates.get (row)). get (col) ؛ عودة أخرى فارغة. } Override public string getColumnName (عمود int) {// todo method method method tuto return (string) this.columnnames.get (column) ؛ }}3. فئة Stuadddialog (إضافة واجهة معلومات الطالب)
حزمة com.sms3 ؛ استيراد java.awt.borderlayout ؛ استيراد java.awt.dialog ؛ استيراد java.awt.frame ؛ استيراد java.awt.gridlayout ؛ استيراد java.awt.event.actionevent ؛ استيراد java.awt.event.actionListener ؛ استيراد javax.swing.*؛ الطبقة العامة stuadddialog يمتد jdialog تنفيذ ActionListener {// ================================ ^ //...... قم بملء المعلومات الموجودة على اليمين لملء العمود الخاص بـ jtextfield idtxt ، nametxt ، sextxt ، agetxt ، jgtxt ، depttxt ؛ //...... add and cancel button private jbutton addbtn ، cancelbtn ؛ //...... // Constructor Public Stuadddialog (مالك الإطار ، عنوان السلسلة ، Modal Boolean) {// ======== ^ إعادة كتابة طريقة الفئة الأصل Super (المالك ، العنوان ، Modal) ؛ // ============= عمود العلامة على اليسار هو IdLab = New JLabel ("رقم الطالب:") ؛ namelab = new jlabel ("الاسم:") ؛ sexlab = new Jlabel ("الجنس:") ؛ Agelab = New Jlabel ("العمر:") ؛ JGLAB = New JLabel ("Hometown:") ؛ Deptlab = New Jlabel ("Direction:") ؛ // ========== ملء عمود المعلومات على اليمين هو idtxt = new jtextfield () ؛ nametxt = new JTextField () ؛ sextxt = new JTextField () ؛ agetxt = new JTextField () ؛ agetxt = new JTextField () ؛ agetxt = new JTextField () ؛ jgtxt = new jtextfield () ؛ depttxt = new JTextField () ؛ // ========== ADD وإلغاء أزرار ADDBTN = New JButton ("Add") ؛ CancelBTN = New JButton ("إلغاء") ؛ //...... addd addbtn.addActionListener (this) ؛ addbtn.setActionCommand ("add") ؛ CancelBtn.AddActionListener (هذا) ؛ CancelBtn.SetActionCommand ("إلغاء") ؛ // ======= إنشاء تخطيط // ...... إنشاء العمود الأيسر = جديد JPanel () ؛ Left.setLayout (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) ؛ // ========= Layout This.add (يسار ، borderlayout.west) ؛ this.add (المركز ، borderlayout.center) ؛ this.add (أسفل ، borderlayout.south) ؛ . this.setResible (false) ؛ this.setVisible (صحيح) ؛ } Override public void actionperformed (ActionEvent e) {// todo method method method method if ( String sql = "insert في قيم STU (؟ ،؟ ،؟ ،؟ ،؟ ،؟)" ؛ String [] paras = {idtxt.gettext () ، nametxt.gettext () ، sextxt.gettext () ، agetxt.gettext () ، jgtxt.gettext () ، depttxt.gettext ()} ؛ if (! tmp.cudstu (SQL ، Paras)) joptionpane.showmessagedialog (هذا ، "إضافة معلومات الطالب فشل") ؛ // ======== أغلق النافذة this.dispose () ؛ } if if ( }}}4. فئة Stuupdatedialog (تعديل معلومات الطالب الفرعية)
حزمة com.sms3 ؛ استيراد java.awt.borderlayout ؛ استيراد java.awt.frame ؛ استيراد java.awt.gridlayout ؛ استيراد java.awt.event.actionevent ؛ استيراد java.awt.event.actionListener ؛ استيراد javax.swing.jbutton ؛ استيراد javax.swing.jdialog ؛ استيراد javax.swing.jlabel ؛ استيراد javax.swing.joptionpane ؛ استيراد javax.swing.jpanel ؛ استيراد javax.swing.jpanel ؛ استيراد javax.swing.jtextfield ؛ استيراد javax.swing.table.abstractTableModel ؛ الطبقة العامة stuupdatedialog يمتد jdialog تنفيذ actionlistener {// ==============================/... ... شريط العنوان اليسار الخاص jlabel idlab ، namelab ، sexlab ، agelab ، jglab ، deptlab ؛ //...... المعلومات ، حدد ملء العمود الخاص jtextfield idtxt ، nametxt ، sextxt ، agetxt ، jgtxt ، depttxt ؛ //...Add and Cancel Button Private Jbutton AddBtn ، CancelBtn ؛ //...... // Constructor Public Stuupdatedialog (مالك الإطار ، عنوان السلسلة ، Modal Boolean ، Stumodel SM ، int Rownum) {// ========== إعادة كتابة طريقة الفئة الأصل Super (المالك ، العنوان ، Modal) ؛ // ============ شريط التسمية الأيسر IdLab = New JLabel ("رقم الطالب:") ؛ namelab = new jlabel ("الاسم:") ؛ sexlab = new Jlabel ("الجنس:") ؛ Agelab = New Jlabel ("العمر:") ؛ JGLAB = New JLabel ("Hometown:") ؛ Deptlab = New Jlabel ("Dimension:") ؛ // ======== املأ المعلومات الموجودة على الجانب الأيمن idtxt = new jtextfield () ؛ idtxt.settext ((string) sm.getValueat (rownum ، 0)) ؛ idtxt.setedable (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 = new jtextfield () ؛ jgtxt.settext ((string) sm.getValueat (rownum ، 4)) ؛ depttxt = new JTextField () ؛ depttxt.settext ((string) sm.getValueat (rownum ، 5)) ؛ // ======== ADD وإلغاء أزرار ADDBTN = New JButton ("Modify") ؛ CancelBTN = New JButton ("إلغاء") ؛ //...... addd addbtn.addActionListener (this) ؛ AddBtn.SetActionCommand ("تحديث") ؛ CancelBtn.AddActionListener (هذا) ؛ CancelBtn.SetActionCommand ("إلغاء") ؛ // ======== إنشاء تخطيط // ...... إنشاء Left = New JPanel () ؛ Left.setLayout (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) ؛ // ======== Layout This.add (يسار ، borderlayout.west) ؛ this.add (المركز ، borderlayout.center) ؛ this.add (أسفل ، borderlayout.south) ؛ . this.setResible (false) ؛ this.setVisible (صحيح) ؛ } Override public void actionperformed (ActionEvent e) {// todo method method method tuto if ( String sql = "update stu set und und =؟ ، stusex =؟ ، stuage =؟ ، stujg =؟ String [] paras = {nametxt.gettext () ، sextxt.gettext () ، agetxt.gettext () ، jgtxt.gettext () ، depttxt.gettext () ، idtxt.gettext ()} ؛ if (! tmp.cudstu (SQL ، Paras)) joptionpane.showmessagedialog (هذا ، "فشل في تعديل معلومات الطالب") ؛ // ======== أغلق النافذة this.dispose () ؛ } if if ( }}} 5. فئة SQLHelper (أدنى فئة قاعدة بيانات)
حزمة com.sms3 ؛ استيراد java.sql.*؛ الفئة العامة sqlhelper {// ========= Database اتصال خاص ct = null ؛ Private ReparedStatement PS = NULL ؛ نتائج خاصة RS = فارغة ؛ سائق سلسلة خاص = "com.microsoft.sqlserver.jdbc.sqlserverdriver" ؛ سلسلة url الخاصة = "JDBC: SQLServer: //127.0.0.1: 1433 ؛ قاعدة بيانات = طالب" ؛ user user user = "sa" ؛ سلسلة خاصة passwd = "****" ؛ . تحميل فئة السائق. forname (Driver) ؛ // ======== 2. connect ct = drivermanager.getConnection (url ، user ، passwd) ؛ // ======== 3. إنشاء reparedStatement 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 ؛ } // ========= إضافة أو حذف cudexecute boolean العامة (سلسلة sql ، string [] paras) {boolean b = true ؛ حاول {// ========= 1. تحميل فئة السائق. forname (Driver) ؛ // ======= 2. connect ct = drivermanager.getConnection (url ، user ، passwd) ؛ // ======= 3. إنشاء reparedStatement 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 ؛ } // =========== إغلاق Resource Public 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 أكثر.