• 0
Eng Jmt

refresh button

سؤال

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

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

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

7 إجابة على هذا السؤال .

  • 0

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

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

تحياتي

عند الضغط على زر 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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

ممكن نعمل زرار ال 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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

تم تعديل بواسطه _jmt
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

تم تعديل بواسطه _jmt
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .