• 0

طريقة التحقق من نوع القيم المدخلة في JTextField بلغة جافا

 القيم التي يدخلها المستخدم في كل الخانات تدخل بsttring لكن اريد ان تكون Tacheو Précédent تقبلان فقط رقم او حرف

اما DuréeوCoût يقبلو  قيم تدخل FLOAT 

يعني لا يستطيع المستخدم ادخال الرمووز في اي خانة اضافة لهاته الشروط ارجوووووووووووو المساعدة و تصحيح الكود هنا  انا مستعجلة 

package myroject;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.JScrollPane;
 import javax.swing.table.DefaultTableModel;
public class table01 extends javax.swing.JFrame {
    static JLabel label_1 = new JLabel("Tache");
    static JLabel label_2 = new JLabel("Durée");
    static JLabel label_3 = new JLabel("Précédent");
    static JLabel label_4= new JLabel("Coût");
    static JTextField textField_1 = new JTextField();
    static JTextField textField_2 = new JTextField();
    static JTextField textField_3 = new JTextField();
    static JTextField textField_4 = new JTextField();
    static JButton btn_Ajouter = new JButton("Ajouter");
    static JButton btn_Essuyer = new JButton("Essuyer");
    static JButton btn_Supprimer = new JButton("Supprimer la sélection");
    static JButton btn_Supptout= new JButton("Supprimer tout");
    static DefaultTableModel model = new DefaultTableModel();
    static JTable table = new JTable( model );
    static JScrollPane tableScroller = new JScrollPane( table );
    public table01() {
        model.addColumn("Tache");
        model.addColumn("Durée");
        model.addColumn("Précédent");
        model.addColumn("Coût");
        label_1.setBounds(35, 50, 100, 20);
        label_2.setBounds(35, 90, 50, 20);
        label_3.setBounds(35, 130, 120, 20);
        label_4.setBounds(35, 170, 50, 20);
        textField_1.setBounds(100, 50, 120, 20);
        textField_2.setBounds(100, 90, 120, 20);
        textField_3.setBounds(100, 130, 120, 20);
        textField_4.setBounds(100, 170, 120, 20);
        btn_Ajouter.setBounds(180, 210, 90, 30);
        btn_Essuyer.setBounds(100, 210, 90, 30);
        btn_Supprimer.setBounds(315, 250, 170, 30);
        btn_Supptout.setBounds(500, 250, 140, 30);
        tableScroller.setBounds(280, 50, 370, 160);
        getContentPane().add(label_1);
        getContentPane().add(label_2);
        getContentPane().add(label_3);
        getContentPane().add(label_4);
        getContentPane().add(textField_1);
        getContentPane().add(textField_2);
        getContentPane().add(textField_3);
        getContentPane().add(textField_4);
        getContentPane().add(btn_Ajouter);
        getContentPane().add(btn_Essuyer);
        getContentPane().add(btn_Supprimer);
        getContentPane().add(btn_Supptout);
        getContentPane().add(tableScroller);
        this.setSize(800, 400);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(null);
        
         btn_Ajouter.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                 if( !textField_1.getText().equals("") && !textField_2.getText().equals("") && !textField_3.getText().equals("") && !textField_4.getText().equals(""))
                {   

                   
                   
                     String Tache = textField_1.getText();
                     String Durée = textField_2.getText();
                     String Précédent = textField_3.getText();
                     String Coût = textField_4.getText();
                     String[] userInfo = { Tache, Durée, Précédent  ,Coût };
                    model.addRow( userInfo );
                }
            }
        });
         btn_Essuyer.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                 textField_1.setText("");
                textField_2.setText("");
                textField_3.setText("");
                textField_4.setText("");
            }
        });
         btn_Supprimer.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                 if( table.getSelectedRowCount() > 0 )
                {
                     int[] selectedIndices = table.getSelectedRows();
                    for( int i=selectedIndices.length-1; i>=0; i-- )
                    {
                        model.removeRow( selectedIndices[i] );
                    }
                }
            }
        });
         btn_Supptout.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                 model.setRowCount(0);
            }
        });
    }
     }

 

جافا.png

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

لجعل الخانة JTextField تقبل نوعًا معينًا فقط، يمكن التحقق أن القيمة الموجودة بهذه الخانة قابلة لتحويل لهذا النوع.

مثلًا في حالة أردنا التحقق من أن JTextField تحتوي على رقم سنقوم بكتابة الكود التالي:

try {

  int Tache = parseInt(textField_1.getText());
  

} catch(NumberFormatException ex) {
  
  // إضهار رسالة خطأ
	
}

بنفس الطريقة يمكن التحقق من أن الخانة تحتوي على قيمة من نوع float هكذا:

try {

  int Tache = Float.parseFloat(textField_2.getText());
  

} catch(NumberFormatException ex) {
	// إظهار رسالة خطأ
}

أما بالنسبة للتحقق من أن الخانة JTextField تحتوي على حرف واحد فقط كالتالي:

if(textField_1.getText().length() == 1) {
	String Tache = textField_1.getText();
} else {
	// إظهار رسالة خطأ
}

 

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

هل يمكن التوضيييح في اي جزء من الكود لي عندي  اضع هاته الكودات 

 

 

 

ايضاالقد كنت ابحث قبل قليل وجدت هكذاا  هل يساعدني في ما احتاجه لاني اريد يكون في نفس الخانة تقبل رقم او حرف  بينما ترفض رمز في الخانتين 1 و3 اما الثانية والرابعة تدخلقيم float                لكن مشكلتي لم اعرف كيف اوظف هاته الكودات في الكود الاساسي لي عنديي

 

List<String> names = new ArrayList<String>();
names.add("Lokesh");  
names.add("LOkesh123");  
names.add("LOkesh123-");  //Incorrect
String regex = "^[a-zA-Z0-9]+$";
Pattern pattern = Pattern.compile(regex);
for (String name : names)
{
  Matcher matcher = pattern.matcher(name);
  System.out.println(matcher.matches());
}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 17 دقائق مضت قال Wissal Wissou:

هل يمكن التوضيح في اي جزء من الكود لي عندي  اضع هاته الكودات 

يمكن وضع هذه الأكواد داخل الكود المسؤول على عملية الضغط على زر الإضافة Ajouter

btn_Ajouter.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
	// يجب وضعه هنا
  }
});

بالشكل التالي مثلًا:

btn_Ajouter.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
	// يجب وضعه هنا
  if(textField_1.getText().equals("") || textField_2.getText().equals("") || textField_3.getText().equals("") || textField_4.getText().equals("")){  
    return;
  }
  
  try {
    Integer.parseInt(textField_1.getText());
  } catch(NumberFormatException ex) {
    if(textField_1.getText().length() != 1) {
		return;
    }
  }
  
  String Tache = textField_1.getText();
  
  try {
    Integer.parseInt(textField_3.getText());
  } catch(NumberFormatException ex) {
    if(textField_3.getText().length() != 1) {
		return;
    }
  }
  
  String Precedent = textField_3.getText();
      
  try {
    Float.parseFloat(textField_2.getText());
    String Duree = textField_2.getText();
    
    
  } catch(NumberFormatException ex) {
    // إضهار رسالة خطأ
    return;
  }
  
  try {
    Float.parseFloat(textField_4.getText());
    String Cout = textField_4.getText();
  } catch(NumberFormatException ex) {
    // إضهار رسالة خطأ
    return;
  }
  
  
  String[] userInfo = { Tache, Duree, Precedent, Cout };
  model.addRow( userInfo );

  }
});

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

لقد وضعتالكودلكن ظهرتاخطااء في btn الاخرين 

yaso.png

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ منذ ساعة مضت قال Wissal Wissou:

لقد وضعتالكودلكن ظهرتاخطااء في btn الاخرين 

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


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