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

refresh button

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

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

اريد عمل زرار يقوم بعمل Refresh عند الضغط عليه يعمل مقارنه بين البيانات الموجودة في الداتابييز والبيانات الموجودة في ال jlist ويضيف عليهم الجديد فقط

وشكرا

#2

طيب ما المشكلة التي تواجهها؟

تحياتي

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

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

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

728x90.png

#3
علاء الصالحي كتب:

طيب ما المشكلة التي تواجهها؟

تحياتي

عند الضغط على زر refresh يقوم بمقارنة البيانات المعروضة في الداتا بييز والموجود في jTable واذا كان هناك صفوف في الداتا بييز ليست معروضة في jtable يقوم بالتحديث في jtable

,وهناك مشكلة اخرى لو عندي JComboBox1 تحتوي على الفئة و JComboBox2 تحتوي على الاصناف اريد عند اختيار الفئة من JComboBox1 يعرض في JComboBox2 الاصناف التابعة لهذه الفئة فقط المشكلة انه عند اختيار الفئة فئة 1 مثلا من JComboBox1 يظهر في JComboBox2 الاصناف بشكل صحيح ولكن لو عاودت اختيار فئة 2 يظهر في JComboBox2 اصناف الفئتين معا

import java.sql.*;
import java.util.logging.*;


public class NewJFrame extends javax.swing.JFrame {
    Connection con;
    Statement st;
    ResultSet res;
    int catId;
    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
        connectDB();
        getAllCategory();

    }


    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jComboBox1 = new javax.swing.JComboBox();
        jComboBox2 = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }
        });


    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        System.out.println(jComboBox1.getSelectedItem());
      try {
            // TODO add your handling code here:
            String selectFrom = "SELECT category_id FROM JBusiness.category WHERE category_name ='"+jComboBox1.getSelectedItem()+"'";
            res = st.executeQuery(selectFrom);
            while (res.next()) {
                 catId = res.getInt(1);
                  getItems(catId);
               }


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

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






    // Variables declaration - do not modify
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBox2;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration




    private void getAllCategory() {
            jComboBox1.addItem("");
              try{
            String selectFrom = "SELECT category_name FROM JBusiness.category ORDER BY category_name";
            res = st.executeQuery(selectFrom);
            while (res.next()) {
               jComboBox1.addItem(res.getString(1));

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


    private void connectDB() {
           try {
            con = DBConnectionUtility.createMySqlConnection();
            st = con.createStatement();
            System.out.println("Statements created....");
        } catch (SQLException ex) {
            Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


     private void getItems(int catId) {


         try {
            String selectFrom = "SELECT item_name FROM JBusiness.items WHERE category_id ="+catId+" ORDER BY item_name";
            res = st.executeQuery(selectFrom);
            while (res.next()) {

              jComboBox2.addItem(res.getString(1));
            }

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



    }


}

تم تعديل هذه المشاركة بواسطة _jmt في 4 أبريل 2012 في 09:21

#4

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

ممكن نعمل زرار ال Refresh انه يحدث الجدول كليا وفقا للجدول البيانات .. بدل ما نعمل مقارنه وبعد كده يضيف الجديد ..

ممكن تعمل داله يتم استدعائها عند الضغط على الزر .. الداله دى هتنشأ الـ JTable من جديد وفقا لجدول البيانات ..

اتفضلى الـ Function دى ويا رب تستفيدى منها :)

 
void getTable(String query){
        try{
     resultSet = statement.executeQuery(query); //      

     // SetTable      
                 // Get Row Count 
     resultSet.first();
     resultSet.last();
     int rowCount = resultSet.getRow();     
     resultSet.first();
     resultSet.previous();
     columnOb = new Object[resultSet.getMetaData().getColumnCount()];
      rowsOb = new Object[rowCount][resultSet.getMetaData().getColumnCount()];
     // COULMN
     for(int i =1;i<=resultSet.getMetaData().getColumnCount();i++){
        // columns.addElement(resultSet.getMetaData().getColumnName(i));
         columnOb[i-1]=new Object();
         columnOb[i-1] =resultSet.getMetaData().getColumnName(i);                  
     }          
     //ROWS     
     int j=0;
     while(resultSet.next()==true){         
         for(int i =1;i<=resultSet.getMetaData().getColumnCount();i++){           
            rowsOb[j][i-1] = new Object();
            rowsOb[j][i-1]=getObject(i);             
         }
     j++;
     }
     // Update  Table
     tableModel.setDataVector(rowsOb, columnOb);     
     northPanel.validate(); // northPanel is the JPanel Table added to ..
        }catch(SQLException ex){
           ex.printStackTrace(); 
           JOptionPane.showMessageDialog(null, "ResultSet Ex..."+ex.toString());              
        }                
    }

    Object getObject(int index){
        Object object = new Object();        
        try{            
        switch(resultSet.getMetaData().getColumnType(index)){
            case Types.VARCHAR:               
               return object= resultSet.getString(index);                
            case Types.INTEGER:               
               return object= resultSet.getInt(index);                                
            case Types.DATE:                                               
               return object= resultSet.getDate(index);                
                case Types.DOUBLE:                 
               return object= resultSet.getDouble(index);           
        }}catch(SQLException ex){
            try{
            JOptionPane.showMessageDialog(null,"no  Type  is!"+resultSet.getMetaData().getColumnTypeName(index)+ex.toString());
            }catch(SQLException e){JOptionPane.showMessageDialog(null,""+e.toString());}
        }
        return object;    
    }
1
#5

شكرا اشتغلت معايا

#6

طيب وبالنسبة للمشكلة التانية

تم تعديل هذه المشاركة بواسطة _jmt في 7 أبريل 2012 في 07:08

#7

,وهناك مشكلة اخرى لو عندي JComboBox1 تحتوي على الفئة و JComboBox2 تحتوي على الاصناف اريد عند اختيار الفئة من JComboBox1 يعرض في JComboBox2 الاصناف التابعة لهذه الفئة فقط المشكلة انه عند اختيار الفئة فئة 1 مثلا من JComboBox1 يظهر في JComboBox2 الاصناف بشكل صحيح ولكن لو عاودت اختيار فئة 2 يظهر في JComboBox2 اصناف الفئتين معا

تم تعديل هذه المشاركة بواسطة _jmt في 7 أبريل 2012 في 07:10

#8

قوم بافراغ محتويات الـJComboBox2 قبل الاضافه

ولا تقوم باضافه item له فهذا يضيف على الموجود بالسابق

او قوم باستخدام Model لذلك

Software Developer
Mahmoudkelany.com


 

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