Wissal Wissou نشر 27 أغسطس 2020 أرسل تقرير نشر 27 أغسطس 2020 القيم التي يدخلها المستخدم في كل الخانات تدخل ب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); } }); } } اقتباس
0 محمد ربيع زليول نشر 27 أغسطس 2020 أرسل تقرير نشر 27 أغسطس 2020 لجعل الخانة 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 Wissal Wissou نشر 27 أغسطس 2020 الكاتب أرسل تقرير نشر 27 أغسطس 2020 هل يمكن التوضيييح في اي جزء من الكود لي عندي اضع هاته الكودات ايضاالقد كنت ابحث قبل قليل وجدت هكذاا هل يساعدني في ما احتاجه لاني اريد يكون في نفس الخانة تقبل رقم او حرف بينما ترفض رمز في الخانتين 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 محمد ربيع زليول نشر 28 أغسطس 2020 أرسل تقرير نشر 28 أغسطس 2020 بتاريخ 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 Wissal Wissou نشر 28 أغسطس 2020 الكاتب أرسل تقرير نشر 28 أغسطس 2020 لقد وضعتالكودلكن ظهرتاخطااء في btn الاخرين اقتباس
0 محمد ربيع زليول نشر 28 أغسطس 2020 أرسل تقرير نشر 28 أغسطس 2020 بتاريخ منذ ساعة مضت قال Wissal Wissou: لقد وضعتالكودلكن ظهرتاخطااء في btn الاخرين يجب التحقق من ترتيب المعقوفات والأقواس، هل جميعها مغلق بالشكل الصحيح. اقتباس
السؤال
Wissal Wissou
القيم التي يدخلها المستخدم في كل الخانات تدخل بsttring لكن اريد ان تكون Tacheو Précédent تقبلان فقط رقم او حرف
اما DuréeوCoût يقبلو قيم تدخل FLOAT
يعني لا يستطيع المستخدم ادخال الرمووز في اي خانة اضافة لهاته الشروط ارجوووووووووووو المساعدة و تصحيح الكود هنا انا مستعجلة
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.