الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن مفهوم بالجافا

بدأه kiubo في 2 مايو 2012 · 30 رد · 1,721 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته..

عندي سؤال يتعبر حله احد مفاهيم الجافا

لدينا على سبيل المثال ثلاثه classes

class A

class B

class C

في C لدينا methods

اسمها

 setName(String name)
getName()

في class A قمنا باستدعاء method من C

setName(Ahmed)

ثم في كلاس B

قمنا

getName()

يظهر لنا Null

اعلم ان هذا خطاء لكن كيف استطيع استدعاء getName في B

لتظهر لنا قيمة Ahmed

بدون استخدام الوراثه..

ممكن شرح بسيط لهذ الموضوع...

سبب سؤالي لهذا الموضوع حيث اتعامل مع تطبيق و قاعدة بيانات

فعلى سبيل المثال

[Class A]لدينا واجهة لدخول الطالب ويدخل بااسمه ورقمه وبعد قبولها اي التأكد من وجدوها بالقاعده .. .( قمنا بااستدعاء method from class C لأخذ هذة القيم اسم الطالب ورقمه )setName

[Class B]في واجهة اخرى نريد استخدام القيم المدخلة سابقاً من class A

( قمنا باستدعاء method from C لتظهر القيمة المدخله سابقاً)-getName()

بعد ذالك يظهر لي

null

لا اعلم الامور متشابكة لدي :wacko:

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#2

اي معلومه لهذا الموضوع ..

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#3

مع ان لدي مفهوم اولي من سؤالك

ولكن اذا كنت لا تريد استخدام الوراثة بامكانك استخدام الــcompisition , aggregation

هذا اذا كنت تريد مثلا ان يكون الكلاس A لديه reference الى كلاس B

class A{
B b = new B();
....
...
..
}

بالنسبة لاستدعاء المعلومات في الكلاس c يمكنك عمل داله تستقبل reference من نوع B مثلا حيث يمكنك تمرير هذا المؤشر الى الكلاس c

وهنا تقوم بشيئ كالتالي

class C{
public void setName(B b){
name = b.getName();
}

}

شيئ من هذا القبيل

تحياتي

تم تعديل هذه المشاركة بواسطة mental-driller في 3 مايو 2012 في 03:42

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#4

استخدم composition

كأن تصنع فئة تسمى User وتستقبلها فى البانى Constructor فى كود الواجهة الفرعية Class B

Class WindowB{
User user = null;
public WindowB(User user){
this.user = user;
}
}

كما يمكنك استخدامها مع كل اتصال session وتنقلها بين الفئات وبهذا فلديك معلومات عن المستخدم الحالى للبرنامج اينما ذهب

لكن احذر من thread-safe

بالتوفيق


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#5

مرري كائن الذي تحتاجيه من الشاشة الرئيسية إلى الشاشة الفرعية

وخزنيه في field

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

اخواني لاسف لم استطيع تطبيق ماقلتموه لي

سأضع الاكودا وسأوضح..

اشعر بأن شي ما لم استطع فهمة او تغطيته ,,لا اعلم :sad:

صوورة من الواجهة

post-250413-003652200 1336030073_thumb.p

    private void logButtonMouseClicked(java.awt.event.MouseEvent evt) {                                       


            String sID=studentID_Field.getText();

        String sql = "select * from shc.student where StudentId = ? ";
        try {

            pst = connection_11.getConnection().prepareStatement(sql);

                    this.StudentID =studentID_Field.getText();

                    setStudentID(studentID_Field.getText());
            pst.setString(1, sID);




            rs = pst.executeQuery();
            if (rs.next()) {
                studentbool = true;
                JOptionPane.showMessageDialog(null, "the student name are correct");
                 JOptionPane.showMessageDialog(null, sID);
               diagnose = new DiagnoseSystemV_1(); 




            }else{

           JOptionPane.showMessageDialog(null, "the student name or student ID are incorrect", "Error", JOptionPane.ERROR_MESSAGE);
            }





        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        } 


    }

    public String getStudentID() {
        return StudentID;
    }

    public void setStudentID(String StudentID) {
        studentID_Field.setText(StudentID);
    }

الامور جيده بداخل ال class لكن عندما نخرج تعطينا قيمة فارغه

حاولت بجميع الطرق التى اعرفتها والتى تعلمتها ,,و لكن لم تفلح

وهنا صورة من ال class الذي اريد استدعاء الية

post-250413-028487800 1336030036_thumb.p

كود ال constructor

 
 public TheResult(DiagnoseSystemV_1 pMainWindows,LoginJFrameStudent student) 
    {

        connection_11= new DatabaseConnection();
    connection_11.connected();
        try {
         initComponents();
       this.stodentLog=student;

            this.min = pMainWindows;


            try {




        pMainWindows.es.runRules();//work
        pMainWindows.es.FindRecommendation();//work
        System.out.println("****************"+pMainWindows.es.getRecommendation()+"***************");//work
        resultTextArea.setText("--------/"+pMainWindows.es.getRecommendation()+"--------------"+pMainWindows.getQuestionText());//work


            } catch (Exception ex) {
              Logger.getLogger(TheResult.class.getName()).log(Level.SEVERE, null, ex);
                }

    }   catch (SQLException ex) {
            Logger.getLogger(TheResult.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
      Logger.getLogger(TheResult.class.getName()).log(Level.SEVERE, null, ex);
        }

وهذة الخاصة بالرز

  private void save_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                         

     String sql = "insert into shc.diagnosis_new (studentId,"
            + "timeOfDiagnosis,dateOfDiagnosis,resultOfDiagnosis_EN) "
             + "values(?, ?, ?, ?) " ;




    try{


         Date data = new Date();
String Data=format_data.format(data);
String Time = format_time.format(data);
        pst = (PreparedStatement) connection_11.getConnection().prepareStatement(sql);

        //
        System.out.println("The student ID ="+stodentLog.getStudentID());//NO value

        pst.setString(1,stodentLog.getStudentID());//NO value

        pst.setString(2,Time);

        pst.setString(3,Data);

        pst.setString(4, min.es.getRecommendation());//work even this has same idea


        pst.execute();
        JOptionPane.showMessageDialog(null, "Saved");

        System.out.println("The student ID ="+stodentLog.getStudentID());//NO value
    } catch (Exception e){
        JOptionPane.showMessageDialog(null, e);
        System.out.println(e);
    }

يقبل القيم ولايدخل شيء ب studentId

يكون فارغ في قاعدة البيانات

افكر في اعادة انشاء loingJFrameStudent

المرفقات
54324.png12332.png

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#7

قبل ان نذهب بعيدا في تفسير اي شي

هذا السطر

public void setStudentID(String StudentID) {
        studentID_Field.setText(StudentID);
    }

اليس الاصح ان تقوم بعمل set للسترينغ ؟

public void setStudentID(String StudentID) {
 this.StudentID = StudentID;
    }

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#8
mental-driller كتب:

قبل ان نذهب بعيدا في تفسير اي شي

هذا السطر

public void setStudentID(String StudentID) {
        studentID_Field.setText(StudentID);
    }

اليس الاصح ان تقوم بعمل set للسترينغ ؟

public void setStudentID(String StudentID) {
 this.StudentID = StudentID;
    }

حسناً وضعتها بهذا الشكل

    public String getStudentID() {
        return StudentID;
    }

    public void setStudentID(String StudentID) {
       this.StudentID=StudentID ;
    }

قد قمت بتجريبها باسابق..

والان نفس المشكلة قيمة فارغه..

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#9

لا اعلم

الان ماذ فعلت بنفس ال class التي يعمل بداخله انشأت ال

method

في class LoginJFrameStudent

 public void setdiagnose(){

       String sql = "insert into shc.diagnosis_new (studentId,"
            + "timeOfDiagnosis,dateOfDiagnosis,resultOfDiagnosis_EN) "
             + "values(?, ?, ?, ?) " ;

    try{

         Date data = new Date();
String Data=format_data.format(data);
String Time = format_time.format(data);


        pst = (com.mysql.jdbc.PreparedStatement) connection_11.getConnection().prepareStatement(sql);

        //
        System.out.println("The student ID ="+this.getStudentID());//null

        pst.setString(1,this.getStudentID());//null

        pst.setString(2,Time);

        pst.setString(3,Data);

        pst.setString(4, result_11.min.es.getRecommendation());
        pst.execute();
        JOptionPane.showMessageDialog(null, "Saved");

        System.out.println("The student ID ="+this.getStudentID());
    } catch (Exception e){
        JOptionPane.showMessageDialog(null, e);
        System.out.println(e);
    }





    }

ومن ال class الاخر قمت بااستدعائها بهذا الشكل

    private void save_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                         
log.setdiagnose();

        // TODO add your handling code here:
    }

يظهر لي

java.lang.NullPointerException

ياترى ماهي المشلكة اريد فقط اخذ القيمة المدخله الصحيحه لأضافتها في جدول :sad:

تم تعديل هذه المشاركة بواسطة kiubo في 3 مايو 2012 في 14:06

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#10

ملاحظة بسيطة ، اذا كانت العملية التي تقوم بها داخل قاعدة البيانات عبارة عن DML يعني Insert, Delete or Update

تستخدم هذه الدالة في الــ prepared statement

stmt.executeUpdate();

後で

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#11
mental-driller كتب:

ملاحظة بسيطة ، اذا كانت العملية التي تقوم بها داخل قاعدة البيانات عبارة عن DML يعني Insert, Delete or Update

تستخدم هذه الدالة في الــ prepared statement

stmt.executeUpdate();

後で

وضعتها ولكن نفس المشكلة ..

اتوقع هنالك خطاء في شيء ما ,,ولكن لا اعرفه :S

في بعض الاحيان الانسان يحتاج ان يفكر في طريقة اخرى .

فكرت بطريقة

وهي عند ادخال رقم الطالب والتأكد من صحته نقوم باادخال هذة القيمة بالجدول المراد اضافة كارقم الطالب فقط وعند استخدام النظام التشخيصي وضغط المستخدم على حفظ يقوم بعمل updata

للطالب الذي ادخل رقمه .. ويدخل باقي البيانات المطلوبه..من البرنامج نفسه

ربما الطالب يدخل اسمه فقط ولا يضغط على زر الحفظ ..

وبالتالي سأحصل على عديد من ارقام الطلاب بدون بيانات التشخيص التابعه لهم ...

اعطوني افكاركم .. اتوقع الموضوع بسيط جداً ,,لكن سبحان الله اجد عراقيل في ذالك ...

بااختصار شديد كيف استطيع اخذ قيمة من المستخدم واحفظها بمكان واستخدمها في classes اخرى..

ال set و get البسيطه لا تعمل معي ..

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#12

حسنا

اولا هل تاكدت من العبارة تتنفذ بشكل سليم في قاعدة البيانات من دون استخدام الجافا اعني تقوم بادخالها مباشره الى قاعدة البيانات باستخدام الواجهه الخاصة بقاعدة البيانات

ثانيا حسب استنتاجي فان stodentLog.getStudentID() هو مسبب المشكله (هذا رايي المبدئي) لذا فهل ممكن ان احصل على الكلاس الخاص بهذا العنصر ؟

ثالثا هل من الممكن ارفاق الكود ام ان هناك جانب من السريه بخصوص هذا الكود؟

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#13
mental-driller كتب:

حسنا

اولا هل تاكدت من العبارة تتنفذ بشكل سليم في قاعدة البيانات من دون استخدام الجافا اعني تقوم بادخالها مباشره الى قاعدة البيانات باستخدام الواجهه الخاصة بقاعدة البيانات

ثانيا حسب استنتاجي فان stodentLog.getStudentID() هو مسبب المشكله (هذا رايي المبدئي) لذا فهل ممكن ان احصل على الكلاس الخاص بهذا العنصر ؟

ثالثا هل من الممكن ارفاق الكود ام ان هناك جانب من السريه بخصوص هذا الكود؟

  1. 1 القاعد تعمل بشكل جيد من MYSQL workbench القيم تقبلها دون ادنى مشاكل
  2. 2 الكود الخاص بادخال البيانات يعمل عندما ادخلت القيم بشكل يدوي "مكتوبه بالكود مثلاً"
    pst.setString(1,"983478");

    لايوجد مشكلة بهذا الموضوع

  3. 3 قمت بتجريب ال JOPtionPane واهي الاخرى تعمل دون مشاكل
        JOptionPane.showMessageDialog(null, this.getStudent());


    وتظهر لنا القيمة المدخله من المستخدم وتعرضه , فمن المنطقي كما استطعنا عرضها نستطيع حتماً حفظ هذة القيمة ... ونفس الكلام مع System.out.print هذا يعطينا دليل ان عمل ال getStudent() جيد

  4. 4 لذالك اتني فكره اني اقوم بعمل method واظيفتها ادخال القيم الطلوبه وواقم بمناداتها بالكلاس المطلوب .. الmethod يكون موجود ب loingJFrameStudent
    واقوم بمنداته عند الضغط على الزر المطلوب في كلاس TheResult يقوم باادخال القيم
  5. 5 السيناريو كالتالي: المستخدم يدخل رقم الطالب ثم يسمح له استخدام النظام التشخيص بعد ذالك يظهر له النتيجه وهو كلاسTheResult عند الضغط على الرزsave يحفظ القيم من رقم الطالب وتفاصيل النظام .. لكن رقم الطالب يكون null
  6. 6 قمت بااعادة انشاء الكلاس لعلى وعسى يعمل وهو الاخر يعمل ولكن لاشيء جديد

هنا الكلاسين بالكامل واي شيء غير واضح استطيع توضيحه

الان توقف على ان القيمة تصبح null وخطا

java.lang.NullPointerException

وحسب ماقرأت تقصد قيمة ال null

loginStudent

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lightofproject.gui;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Home
 */
public class loginStudent extends javax.swing.JFrame {

    /**
     * Creates new form loginStudent
     */

    DatabaseConnection connection_11;
    TheResult result_11;
    PreparedStatement pst;
    ResultSet rs;
    DiagnoseSystemV_1 diagnose;
    SimpleDateFormat format_data;
    SimpleDateFormat format_time;
    String student;



    public loginStudent() {
        initComponents();

        connection_11 = new DatabaseConnection();
        connection_11.connected();

        format_data = new SimpleDateFormat("yyyy-MM-dd");
        format_time = new SimpleDateFormat("h:mm:ss");

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        ok_button = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        studentID_Field = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        ok_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/32x32/Select.png"))); // NOI18N
        ok_button.setText("ok");
        ok_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ok_buttonActionPerformed(evt);
            }
        });

        jLabel1.setText("Student ID:");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(144, 144, 144)
                        .addComponent(ok_button, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1)
                        .addGap(35, 35, 35)
                        .addComponent(studentID_Field, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(53, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(102, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(studentID_Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(ok_button)
                .addGap(24, 24, 24))
        );

        pack();
    }// </editor-fold>                        

    private void ok_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                          
        try {
         //   String sID=studentID_Field.getText();
         this.setStudent(studentID_Field.getText());
            String sql = "select * from shc.student where StudentId = ? ";

            pst = connection_11.getConnection().prepareStatement(sql);
            pst.setString(1, this.getStudent());//work


            rs = pst.executeQuery();
            if (rs.next()) {

                JOptionPane.showMessageDialog(null, "the student name are correct");
                JOptionPane.showMessageDialog(null, this.getStudent());//work
                System.out.println("The student ID ="+this.getStudent());//work
                diagnose = new DiagnoseSystemV_1();

                diagnose.setVisible(true);

            }else{

           JOptionPane.showMessageDialog(null, "the student name or student ID are incorrect", "Error", JOptionPane.ERROR_MESSAGE);
            }







        // TODO add your handling code here:
        } catch (SQLException ex) {
            Logger.getLogger(loginStudent.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                         

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(loginStudent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(loginStudent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(loginStudent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(loginStudent.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {


           new loginStudent().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JButton ok_button;
    private javax.swing.JTextField studentID_Field;
    // End of variables declaration                   


    public void setdiagnose(){

     String sql = "insert into shc.diagnosis_new (studentId,"
            + "timeOfDiagnosis,dateOfDiagnosis,resultOfDiagnosis_EN) "
             + "values(?, ?, ?, ?) " ;


    try{

        Date data = new Date();
        String Data = format_data.format(data);
        String Time = format_time.format(data);
        pst = connection_11.getConnection().prepareStatement(sql);


        System.out.println("The student ID =" + this.getStudent());//null

        pst.setString(1, this.getStudent());//null
        pst.setString(2, Time);
        pst.setString(3, Data);
        pst.setString(4, result_11.min.es.getRecommendation());
        pst.executeUpdate();

        JOptionPane.showMessageDialog(null, "Saved");

        System.out.println("The student ID ="+this.getStudent());//null
    } catch (Exception e){
        JOptionPane.showMessageDialog(null, e);
        System.out.println(e);//java.lang.NullPointerException error
    }





    }

    public String getStudent() {
        return student;
    }

    public void setStudent(String student) {
        this.student = student;
    }






}

TheResult

public class TheResult extends javax.swing.JFrame  {

    /** Creates new form TheResult */
    DiagnoseSystemV_1 min;
    loginStudent student;
    DatabaseConnection connection_11;
    java.sql.PreparedStatement pst;
    ResultSet rs = null;
    SimpleDateFormat format_data = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat format_time = new SimpleDateFormat("h:mm:ss");


public detailsOfdiagnosis recom;

    public TheResult(DiagnoseSystemV_1 pMainWindows) {
        try {
            student = new loginStudent();
            connection_11 = new DatabaseConnection();
            connection_11.connected();


                initComponents();

                this.min = pMainWindows;





            recom = new detailsOfdiagnosis(pMainWindows.es);//work
            pMainWindows.es.runRules();//work
            pMainWindows.es.FindRecommendation();//work
            System.out.println("****************"+pMainWindows.es.getRecommendation()+"***************");//work
            resultTextArea.setText("--------/"+pMainWindows.es.getRecommendation()+"--------------"+pMainWindows.getQuestionText());//work

        } catch (JessException ex) {
            Logger.getLogger(TheResult.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
public TheResult(){



}
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        resultTextArea = new javax.swing.JTextArea();
        jPanel2 = new javax.swing.JPanel();
        qcon = new javax.swing.JLabel();
        noCon = new javax.swing.JButton();
        yesCon = new javax.swing.JButton();
        jToggleButton1 = new javax.swing.JToggleButton();
        save_button = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("The Result");

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "The Result", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(0, 102, 0))); // NOI18N

        jScrollPane1.setForeground(new java.awt.Color(212, 208, 200));

        resultTextArea.setBackground(new java.awt.Color(212, 208, 200));
        resultTextArea.setColumns(20);
        resultTextArea.setEditable(false);
        resultTextArea.setRows(5);
        resultTextArea.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                resultTextAreaComponentShown(evt);
            }
        });
        jScrollPane1.setViewportView(resultTextArea);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 131, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        qcon.setText("Again");

        noCon.setText("no");

        yesCon.setText("yes");
        yesCon.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                yesConActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(qcon)
                .addContainerGap(347, Short.MAX_VALUE))
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(67, 67, 67)
                .addComponent(yesCon)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 117, Short.MAX_VALUE)
                .addComponent(noCon)
                .addGap(102, 102, 102))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(qcon)
                        .addContainerGap(75, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addGap(0, 41, Short.MAX_VALUE)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(yesCon)
                            .addComponent(noCon))
                        .addGap(25, 25, 25))))
        );

        jToggleButton1.setText("print result");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        save_button.setText("save");
        save_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                save_buttonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(save_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jToggleButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(17, Short.MAX_VALUE)
                .addComponent(save_button)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jToggleButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(20, 20, 20))
        );

        pack();
    }// </editor-fold>                        

    private void yesConActionPerformed(java.awt.event.ActionEvent evt) {                                       

 min.setVisible(true);
        this.setVisible(false);
min.setFirstPanel();


    }                                      

    private void resultTextAreaComponentShown(java.awt.event.ComponentEvent evt) {                                              

        // TODO add your handling code here:
    }                                             

    private void save_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                            
student.setdiagnose();//this is method 

        // TODO add your handling code here:
    }                                           

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               

    //    JOptionPane.showMessageDialog(null,logStudent_2.StudentID, "Error", JOptionPane.ERROR_MESSAGE);


    //System.out.println("The student ID ="+student.getStudentID());    

        // TODO add your handling code here:
    }                                              

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {

           //   min.setVisible(true);

            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JButton noCon;
    private javax.swing.JLabel qcon;
    private javax.swing.JTextArea resultTextArea;
    private javax.swing.JButton save_button;
    private javax.swing.JButton yesCon;
    // End of variables declaration                   



    public void print(){
resultTextArea.setVisible(true);
              //resultTextArea.setText("Hi");
        //resultTextArea.setText(min.getEnd());

//resultTextArea.setText("HHII");


    }




}

اخواني اخوتي الموضوع جداَ مهم بانسبة جلس مايقارب ال 5 ساعات وااكثر للايجاد حل لهذا الموضوع ..

ربما يكون الخطاء صغير بسيط وانا لااعرفه..

جزاكم الله خير ووفقكم ربي لما يحبه ويرضاه

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#14

المشكله في بنية البرنامج تبدو نوعا غير مرتبه

بما ان لديك كلاسين يحتويان على الداله main سافترض ان TheResult هو الكلاس الذي يبدأ العمل

الغريب هو انك قمت بعمل بانيين two constructors تاكد انك قمت باستدعاء احد البانيين من الاول فاذا كان الذي سوف يتطبق هو الباني الذي لا يحتوي على معاملات

TheResult = new TheResult();

في حينها تاكد من استدعاء الباني اخر كاول جمله في الباني الاول

public TheResult(){

this(new DiagnoseSystemV_1() )}

ايضا عندما تريد تمرير القيمة الى الlloginstudent

this.loginstudent.setStudentID();

كحل بسيط وسريع جرب جعل الStudnetID عضو في الكلاس TheResult بدلا من loginstudent

وهكذا يستطيع الكلاس loginstudent الولوج له بما انهما في نفس الباكاجpackage

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#15
mental-driller كتب:

المشكله في بنية البرنامج تبدو نوعا غير مرتبه

بما ان لديك كلاسين يحتويان على الداله main سافترض ان TheResult هو الكلاس الذي يبدأ العمل

الغريب هو انك قمت بعمل بانيين two constructors تاكد انك قمت باستدعاء احد البانيين من الاول فاذا كان الذي سوف يتطبق هو الباني الذي لا يحتوي على معاملات

TheResult = new TheResult();

في حينها تاكد من استدعاء الباني اخر كاول جمله في الباني الاول

public TheResult(){

this(new DiagnoseSystemV_1() )}

ايضا عندما تريد تمرير القيمة الى الlloginstudent

this.loginstudent.setStudentID();

كحل بسيط وسريع جرب جعل الStudnetID عضو في الكلاس TheResult بدلا من loginstudent

وهكذا يستطيع الكلاس loginstudent الولوج له بما انهما في نفس الباكاجpackage

لابأس اختك بالله مبتدئه بالجافا وكل يوم اتعلم :happy:

..

ممكن من فضلك تزودني بملاحظاتك التي لاحظتها بالكود؟ كي احسنها واعدلها ؟

حسناَ ازلت ال constructor الفارغ كنت وضعته باسابق ,,ولم استفد منه ونسيت ازالته..

بعد ان تم ازالته رجعنا لنقطة البداية..

وهنالك خيط رفيع قالوه الاخوان بأن اضع قيمة اخرى مع constructor

في كلاس theResult

لربما استطيع ان اقوم بمثل مااقمت به في هذا السطر

 pst.setString(4, this.min.es.getRecommendation());

this الكائن الحالي

min الكائن الخاص بالتشخيص

es كائن اخر من كلاس اخر موجود ب min

هنالك ثلاثه كلاسات مشتركه بالموضوع في السطر اعلاه ومع ذلك .. يعمل بشكل طبيعي ومتوقع.. دون ادى مشاكل هذا يدل على ضرورة اضافته مع ال constructor لكن كيف

امممم

سأحاول اضافة ال loginstudent داخل constrctor في TheResult

سأعمل بالامر المنطقي حيث اجعل الmethod الخاصة بااضافة القيم داخل loginstudent واقوم بماداتها من داخل TheResult مع اضافة ال constructor

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#16

لدى هذا الكلاس حماية غريبه loginstudent

لا استطيع بشتى الطرق ان اخذ القيمة منه ..قمت بماقلته باسابق ولم يفد ...

مع العلم اني حولت ال textfield التابع لل ID الي public لربما كانت هي السبب

لدي فكرة اتمنى ان تعمل

الفكره اني سأدمج ال TheResult and loginstudent

وفي كلاس واحد حيث اضمن تسجيل القيمة المدخله ....

اممممم

اي اقتراحات مقبوله ..

اللغز كلاس لايقبل ان يعطي قيمته لأي كائن اخر .. هل من حل لأكسر رأسه

:dry:

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#17

هل جربتي اخراج الStudentID من نوع سترينغ ووضعه في الكلاس ؟

بحيث يكون تابع للكلاس TheResult بما يتبعه من دوال الset,get وليس للكلاس loginstudent?

تم تعديل هذه المشاركة بواسطة mental-driller في 4 مايو 2012 في 23:48

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#18
mental-driller كتب:

هل جربتي اخراج الStudentID من نوع سترينغ ووضعه في الكلاس ؟

بحيث يكون تابع للكلاس TheResult بما يتبعه من دوال الset,get وليس للكلاس loginstudent?

كيف ذالك في كلاس TheResult فقط يعرض القيم فقط من تفاصيل النظام

اما في داخل ال loginstudent ناخذ رقم الطالب بعد التحقق منه..داخل حدود الكلاس نستطيع عرضه >> اما خارجه لا نستطيع ابداً

حاولت بطرق شتي

حتى اني وضعت جميع ارقام الطلاب في combobox حيث المستخدم يختارمن المجموعه دخلت بتفاصيلها حيث ترجع لي قيمه item 1 مثل ذالك ,, حتى انها غير جيده

قمت باانشاء كلاس مستقل عن الجميع وظيفته فقط اخذت قيمة الطالب من كلاس loginstudent وقمت بأستدعائها في كلاس TheResult

لكن نفس المشكلة..

اممم

الان وضعت زر للتجربة في loginstudent يقوم بنفس الزر save في كلاس TheResult

سجل القيم كما اريد :blink:

يارب بدأت اقترب من الحل :)

سأدمج الكلاسين مع بعض اقصد الواجهتين ..

سأوافيكم بتفاصيل :cool:

شكراً جزيلاً يا mental-driller

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#19

قومي اولا بمسح جميع الدوال الــ main ماعدا التي سوف تستخدمينها وذلك لانها تقوم بعمل new thread

مما قد يسبب مشكله

الكلاس LoginJFrameStudent هل من الممكن الكود الخاص به؟

بانتظار تطورات المشروع

تحياتي

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#20

التحليل المنطقي للكود لا يظهر أي مشاكل

جربي أن تقومي بعمل clean and build لبرنامج Netbeans إذا كنت تستخدميه

لا تدمجي شيئاً

ضعي الفئتين هنا

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#21
mental-driller كتب:

قومي اولا بمسح جميع الدوال الــ main ماعدا التي سوف تستخدمينها وذلك لانها تقوم بعمل new thread

مما قد يسبب مشكله

الكلاس LoginJFrameStudent هل من الممكن الكود الخاص به؟

بانتظار تطورات المشروع

تحياتي

لايوجد اي دوال بداخلmain بكلا الكلاسين كي اقوم بأزالتهم..

الان بعض اضافة هذا الزر سيعمل كالتالي بشكل بدائى جداً اولاً يدخل رقم الطالب عند التأكد من صحته تدخل على النطام بعد ذالك تظهر لك TheResult كي تخبرنا بالنتيجه ثم نعود يأنفسنا طبعاً الي صفحة ال loginstudent ثم نضغط على save

ثم يحفظ القيم الصحيحة من تفاصيل نظام التشخيص ورقم الطالب ..

لم اتم دمجهم حتى الان...

هذا الكود loginStudent

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lightofproject.gui;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Home
 */
public class loginStudent extends javax.swing.JFrame {

    /**
     * Creates new form loginStudent
     */
    DatabaseConnection connection_11;
    TheResult result_11;
    PreparedStatement pst;
    ResultSet rs;
    DiagnoseSystemV_1 diagnose;
    SimpleDateFormat format_data;
    SimpleDateFormat format_time;
    String student;

    public loginStudent() {
        initComponents();

        connection_11 = new DatabaseConnection();
        connection_11.connected();

        format_data = new SimpleDateFormat("yyyy-MM-dd");
        format_time = new SimpleDateFormat("h:mm:ss");



    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        ok_button = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        studentID_Field = new javax.swing.JTextField();
        SAVE = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        ok_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/32x32/Select.png"))); // NOI18N
        ok_button.setText("ok");
        ok_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ok_buttonActionPerformed(evt);
            }
        });

        jLabel1.setText("Student ID:");

        SAVE.setText("save");
        SAVE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SAVEActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(144, 144, 144)
                        .addComponent(ok_button, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1)
                        .addGap(35, 35, 35)
                        .addComponent(studentID_Field, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(53, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addComponent(SAVE, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(74, 74, 74))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(56, 56, 56)
                .addComponent(SAVE, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 65, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(studentID_Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(ok_button)
                .addGap(24, 24, 24))
        );

        pack();
    }// </editor-fold>

    private void ok_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                          


        try {
            setStudent(studentID_Field.getText());



            String sql = "select * from shc.student where StudentId = ? ";
            pst = connection_11.getConnection().prepareStatement(sql);
            pst.setString(1, studentID_Field.getText());//work

            rs = pst.executeQuery();

            if (rs.next()) {


                JOptionPane.showMessageDialog(null, "the student name are correct");
                JOptionPane.showMessageDialog(null, getStudent());//work
                System.out.println("The student ID|?|?|?|?|?|?|?|?|?| =" + student);//work
                diagnose = new DiagnoseSystemV_1();
                result_11 = new TheResult(diagnose);
                diagnose.setVisible(true);

            } else {

                JOptionPane.showMessageDialog(null, "the student name or student ID are incorrect", "Error", JOptionPane.ERROR_MESSAGE);
            }







            // TODO add your handling code here:
        } catch (SQLException ex) {
            Logger.getLogger(loginStudent.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                         

    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        // TODO add your handling code here:
    }                                 

    private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {


        this.setdiagnose();//THE IS THE SOLUTION





    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {

        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {


                new loginStudent().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton SAVE;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JButton ok_button;
    public javax.swing.JTextField studentID_Field;
    // End of variables declaration

    public void setdiagnose() {

        String com = "INSERT INTO shc.diagnosis_new (studentId,"
                + "timeOfDiagnosis,dateOfDiagnosis,resultOfDiagnosis_EN) "
                + "VALUES(?, ?, ?, ?) ";


        try {
            Date data = new Date();
            String Data = format_data.format(data);
            String Time = format_time.format(data);
            pst = connection_11.getConnection().prepareStatement(com);





            pst.setString(1, student);//work
            pst.setString(2, Time);
            pst.setString(3, Data);
            pst.setString(4, result_11.min.es.getRecommendation());
            pst.executeUpdate();

            JOptionPane.showMessageDialog(null, "Saved");

            System.out.println("The student ID =" + this.getStudent());//work
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
            System.out.println(e); 
        }



    }

    public String getStudent() {
        return student;
    }

    public void setStudent(String astudent) {
        this.student = astudent;
    }
}

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#22

مما افهم انه اولا يتم عرض studentlogin ثم يتم عرض result في هذه الحاله دالة الmain الاساسية للبرنامج تبدأ من الكلاس studentlogin مما يعني ان studentlogin هذه ليست نفسها هي studentlogin بداخل الكلاس result

وفي هذه الحالة loginStudent في الكلاس result يجب ان يمرر له loginStudent

..
..
new TheResult(this);

في الباني الخاص بــ theresult

TheResult(loginStudent stud){

this.studentlogin = stud;

..
}

شيئ من هذا القبيل

الكلاس LoginJFrameStudent هو نفسه loginStudent ام ماذا

اريد ان توضحي لي اي كلاس يتم استدعائه اولا مع اسم الكلاس اذا امكن

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#23
mental-driller كتب:

مما افهم انه اولا يتم عرض studentlogin ثم يتم عرض result في هذه الحاله دالة الmain الاساسية للبرنامج تبدأ من الكلاس studentlogin مما يعني ان studentlogin هذه ليست نفسها هي studentlogin بداخل الكلاس result

وفي هذه الحالة loginStudent في الكلاس result يجب ان يمرر له loginStudent

..
..
new TheResult(this);

في الباني الخاص بــ theresult

TheResult(loginStudent stud){

this.studentlogin = stud;

..
}

شيئ من هذا القبيل

الكلاس LoginJFrameStudent هو نفسه loginStudent ام ماذا

اريد ان توضحي لي اي كلاس يتم استدعائه اولا مع اسم الكلاس اذا امكن

اول شي كلاس loginstudent

ثم كلاس DiagnoseSystemV_1

ثم النتيجه TheResult

loginstudent الجديد والاخر القديم الموجود بالمشاركات السابقه

هذا كلاس TheResult

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TheResult.java
 *
 * Created on Apr 2, 2012, 8:49:36 PM
 */

package lightofproject.gui;

import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import jess.JessException;

/**
 *
 * @author Home
 */
public class TheResult extends javax.swing.JFrame  {

    /** Creates new form TheResult */
    DiagnoseSystemV_1 min;
    loginStudent student_log;
    DatabaseConnection connection_11;
    java.sql.PreparedStatement pst;
    ResultSet rs ;
    SimpleDateFormat format_data = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat format_time = new SimpleDateFormat("h:mm:ss");





    public TheResult(DiagnoseSystemV_1 pMainWindows) {
        try {
            initComponents();

            connection_11 = new DatabaseConnection();
            connection_11.connected();
            student_log = new loginStudent();



            this.min = pMainWindows;




            pMainWindows.es.runRules();//work
            pMainWindows.es.FindRecommendation();//work
            System.out.println("****************"+pMainWindows.es.getRecommendation()+"***************");//work
            resultTextArea.setText("--------/"+pMainWindows.es.getRecommendation()+"--------------"+pMainWindows.getQuestionText());//work

        } catch (JessException ex) {
            Logger.getLogger(TheResult.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        resultTextArea = new javax.swing.JTextArea();
        jPanel2 = new javax.swing.JPanel();
        qcon = new javax.swing.JLabel();
        noCon = new javax.swing.JButton();
        yesCon = new javax.swing.JButton();
        jToggleButton1 = new javax.swing.JToggleButton();
        save_button = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("The Result");

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "The Result", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(0, 102, 0))); // NOI18N

        jScrollPane1.setForeground(new java.awt.Color(212, 208, 200));

        resultTextArea.setBackground(new java.awt.Color(212, 208, 200));
        resultTextArea.setColumns(20);
        resultTextArea.setEditable(false);
        resultTextArea.setRows(5);
        resultTextArea.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                resultTextAreaComponentShown(evt);
            }
        });
        jScrollPane1.setViewportView(resultTextArea);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 131, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        qcon.setText("Again");

        noCon.setText("no");

        yesCon.setText("yes");
        yesCon.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                yesConActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(qcon)
                .addContainerGap(347, Short.MAX_VALUE))
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(67, 67, 67)
                .addComponent(yesCon)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 117, Short.MAX_VALUE)
                .addComponent(noCon)
                .addGap(102, 102, 102))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(qcon)
                        .addContainerGap(75, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addGap(0, 41, Short.MAX_VALUE)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(yesCon)
                            .addComponent(noCon))
                        .addGap(25, 25, 25))))
        );

        jToggleButton1.setText("print result");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        save_button.setText("save");
        save_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                save_buttonActionPerformed(evt);
            }
        });
        save_button.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                save_buttonKeyPressed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(save_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jToggleButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(17, Short.MAX_VALUE)
                .addComponent(save_button)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jToggleButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(20, 20, 20))
        );

        pack();
    }// </editor-fold>                        

    private void yesConActionPerformed(java.awt.event.ActionEvent evt) {                                       
 min.setVisible(true);
        this.setVisible(false);

 min.setFirstPanel();


    }                                      

    private void resultTextAreaComponentShown(java.awt.event.ComponentEvent evt) {                                              

        // TODO add your handling code here:
    }                                             

    private void save_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                            

        student_log.setdiagnose();//error java.lang.NullPointerException

        JOptionPane.showMessageDialog(null,student_log.studentID_Field.getText()); //NO VALUE


        // TODO add your handling code here:
    }                                           

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               



        // TODO add your handling code here:
    }                                              

    private void save_buttonKeyPressed(java.awt.event.KeyEvent evt) {                                       

        // TODO add your handling code here:
    }                                      

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {


           //   min.setVisible(true);

            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JButton noCon;
    private javax.swing.JLabel qcon;
    private javax.swing.JTextArea resultTextArea;
    private javax.swing.JButton save_button;
    private javax.swing.JButton yesCon;
    // End of variables declaration                   


}

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

#24

يعني بتحطي رقم الطالب في الكلاس loginStudent ثم عندما تستدعين الكلاس TheResult لديك افتراض مسبق بان الloginStudent التي استدعيت في البداية هي نفسها التي في الكلاس TheResult وهذا غير صحيح

هنا اذا يجب تمرير قيمة الStudentID من الشاشه الاولى الى الشاشة الخاص بTheResult

فمثلا

private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {


        this.setdiagnose();//THE IS THE SOLUTION


// Add this

TheResult res = new TheResult(this.getStudentID(),SystemDiagnosticV_1);


    }

ثم قومي بتعديل الباني الخاص بTheResult بحيث يستقبل String

TheResult(String studentID, SystemDaignosticV_1)

.
.
..

.
student = new loginStudent();
student.setStudentID(studentID);

مع اني افضل ان لا تضعي loginStudent في الكلاس TheResult لانك لاتحتاجين الكلاس كاملا كل ما تحتاجيه هو String

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#25

الان قمت بااضافة الكونستركتر

loginstudent

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lightofproject.gui;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Home
 */
public class loginStudent extends javax.swing.JFrame {

    /**
     * Creates new form loginStudent
     */
    DatabaseConnection connection_11;
    TheResult result_11;
    PreparedStatement pst;
    ResultSet rs;
    DiagnoseSystemV_1 diagnose;
    SimpleDateFormat format_data;
    SimpleDateFormat format_time;
    String student;

    public loginStudent() {
        initComponents();

        connection_11 = new DatabaseConnection();
        connection_11.connected();

        format_data = new SimpleDateFormat("yyyy-MM-dd");
        format_time = new SimpleDateFormat("h:mm:ss");


    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        ok_button = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        studentID_Field = new javax.swing.JTextField();
        SAVE = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        ok_button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon/32x32/Select.png"))); // NOI18N
        ok_button.setText("ok");
        ok_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ok_buttonActionPerformed(evt);
            }
        });
        ok_button.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                ok_buttonKeyPressed(evt);
            }
        });

        jLabel1.setText("Student ID:");

        SAVE.setText("save");
        SAVE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SAVEActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(144, 144, 144)
                        .addComponent(ok_button, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1)
                        .addGap(35, 35, 35)
                        .addComponent(studentID_Field, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(53, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addComponent(SAVE, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(74, 74, 74))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGap(56, 56, 56)
                .addComponent(SAVE, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 65, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(studentID_Field, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(ok_button)
                .addGap(24, 24, 24))
        );

        pack();
    }// </editor-fold>                        

    private void ok_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                          


        try {

            setStudent(studentID_Field.getText());

            String sql = "select * from shc.student where StudentId = ? ";
            pst = connection_11.getConnection().prepareStatement(sql);
            pst.setString(1, getStudent());//work

            rs = pst.executeQuery();

            if (rs.next()) {


                JOptionPane.showMessageDialog(null, "the student name are correct");
                JOptionPane.showMessageDialog(null, getStudent());//work
                System.out.println("The student ID|?|?|?|?|?|?|?|?|?| =" + student);//work
                diagnose = new DiagnoseSystemV_1();
                result_11 = new TheResult(diagnose, student);//new
                diagnose.setVisible(true);

            } else {

                JOptionPane.showMessageDialog(null, "the student name or student ID are incorrect", "Error", JOptionPane.ERROR_MESSAGE);
            }
        } catch (SQLException ex) {
            Logger.getLogger(loginStudent.class.getName()).log(Level.SEVERE, null, ex);
        }


    }                                         

    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        // TODO add your handling code here:
    }                                 

    private void SAVEActionPerformed(java.awt.event.ActionEvent evt) {                                     


        this.setdiagnose();





    }                                    

    private void ok_buttonKeyPressed(java.awt.event.KeyEvent evt) {                                     
        // TODO add your handling code here:
    }                                    

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {

        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {


                new loginStudent().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton SAVE;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JButton ok_button;
    public javax.swing.JTextField studentID_Field;
    // End of variables declaration                   

    public void setdiagnose() {

        String com = "INSERT INTO shc.diagnosis_new (studentId,"
                + "timeOfDiagnosis,dateOfDiagnosis,resultOfDiagnosis_EN) "
                + "VALUES(?, ?, ?, ?) ";


        try {
            Date data = new Date();
            String Data = format_data.format(data);
            String Time = format_time.format(data);
            pst = connection_11.getConnection().prepareStatement(com);

            pst.setString(1, this.getStudent());//work
            pst.setString(2, Time);
            pst.setString(3, Data);
            pst.setString(4, result_11.min.es.getRecommendation());
            pst.executeUpdate();

            JOptionPane.showMessageDialog(null, "Saved");

            System.out.println("The student ID =" + this.getStudent());//work
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
            System.out.println(e);//java.lang.NullPointerException error
        }



    }

    public String getStudent() {
        return student;
    }

    public void setStudent(String astudent) {
        this.student = astudent;
    }
}

TheResult

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TheResult.java
 *
 * Created on Apr 2, 2012, 8:49:36 PM
 */
package lightofproject.gui;

import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import jess.JessException;

/**
 *
 * @author Home
 */
public class TheResult extends javax.swing.JFrame {

    /**
     * Creates new form TheResult
     */
    DiagnoseSystemV_1 min;
    loginStudent student_log;
    DatabaseConnection connection_11;
    java.sql.PreparedStatement pst;
    ResultSet rs;
    SimpleDateFormat format_data = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat format_time = new SimpleDateFormat("h:mm:ss");
    String student_R;

    public TheResult(DiagnoseSystemV_1 pMainWindows, String studentId) {
        try {
            initComponents();

            connection_11 = new DatabaseConnection();
            connection_11.connected();
            this.min = pMainWindows;

            this.student_R = studentId;

            pMainWindows.es.runRules();//work
            pMainWindows.es.FindRecommendation();//work
            System.out.println("****************" + pMainWindows.es.getRecommendation() + "***************");//work
            resultTextArea.setText("--------/" + pMainWindows.es.getRecommendation() + "--------------" + pMainWindows.getQuestionText());//work

        } catch (JessException ex) {
            Logger.getLogger(TheResult.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        resultTextArea = new javax.swing.JTextArea();
        jPanel2 = new javax.swing.JPanel();
        qcon = new javax.swing.JLabel();
        noCon = new javax.swing.JButton();
        yesCon = new javax.swing.JButton();
        jToggleButton1 = new javax.swing.JToggleButton();
        save_button = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("The Result");

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "The Result", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(0, 102, 0))); // NOI18N

        jScrollPane1.setForeground(new java.awt.Color(212, 208, 200));

        resultTextArea.setBackground(new java.awt.Color(212, 208, 200));
        resultTextArea.setColumns(20);
        resultTextArea.setEditable(false);
        resultTextArea.setRows(5);
        resultTextArea.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                resultTextAreaComponentShown(evt);
            }
        });
        jScrollPane1.setViewportView(resultTextArea);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 131, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        qcon.setText("Again");

        noCon.setText("no");

        yesCon.setText("yes");
        yesCon.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                yesConActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(qcon)
                .addContainerGap(347, Short.MAX_VALUE))
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(67, 67, 67)
                .addComponent(yesCon)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 117, Short.MAX_VALUE)
                .addComponent(noCon)
                .addGap(102, 102, 102))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(qcon)
                        .addContainerGap(75, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addGap(0, 41, Short.MAX_VALUE)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(yesCon)
                            .addComponent(noCon))
                        .addGap(25, 25, 25))))
        );

        jToggleButton1.setText("print result");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        save_button.setText("save");
        save_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                save_buttonActionPerformed(evt);
            }
        });
        save_button.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                save_buttonKeyPressed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(save_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jToggleButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(17, Short.MAX_VALUE)
                .addComponent(save_button)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jToggleButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(20, 20, 20))
        );

        pack();
    }// </editor-fold>                        

    private void yesConActionPerformed(java.awt.event.ActionEvent evt) {                                       
        min.setVisible(true);
        this.setVisible(false);

        min.setFirstPanel();


    }                                      

    private void resultTextAreaComponentShown(java.awt.event.ComponentEvent evt) {                                              
        // TODO add your handling code here:
    }                                             

    private void save_buttonActionPerformed(java.awt.event.ActionEvent evt) {                                            


        System.out.println("The student ID out of insert data =" + this.student_R);//new>>>>null
        String sql = "insert into shc.diagnosis_new (studentId,"
                + "timeOfDiagnosis,dateOfDiagnosis,resultOfDiagnosis_EN) "
                + "values(?, ?, ?, ?) ";


        try {
            Date data = new Date();
            String Data = format_data.format(data);
            String Time = format_time.format(data);
            pst = connection_11.getConnection().prepareStatement(sql);

            pst.setString(1, this.student_R);//new null
            pst.setString(2, Time);
            pst.setString(3, Data);
            pst.setString(4, this.min.es.getRecommendation());
            pst.executeUpdate();
            JOptionPane.showMessageDialog(null, this.student_R);
            JOptionPane.showMessageDialog(null, "Saved");

            System.out.println("The student ID in insert data=" + this.student_R);//null
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
            System.out.println(e);//com.mysql.jdbc.exceptions.
            //jdbc4.MySQLIntegrityConstraintViolationException: 
            //Column 'studentId' cannot be null
        }

        // TODO add your handling code here:
    }                                           

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               
        // TODO add your handling code here:
    }                                              

    private void save_buttonKeyPressed(java.awt.event.KeyEvent evt) {                                       
        // TODO add your handling code here:
    }                                      

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                //   min.setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JButton noCon;
    private javax.swing.JLabel qcon;
    private javax.swing.JTextArea resultTextArea;
    private javax.swing.JButton save_button;
    private javax.swing.JButton yesCon;
    // End of variables declaration                   
}

خطاء

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'studentId' cannot be null

ممكن حل اضع رقم طالب جديد في قاعدة البيانات ثم ارى لربما كانت هي السبب

اتفق معكم في حال دمجهم ستصبح بشكل غير جيد لكنه يعتبر حل ومحتمل ...

كن مثل طابع البريد ، التصق بهدفك...حتى تصل الى هناك!

مواضيع مشابهة