• 0
Muhammed Magdy

Generator example 01

سؤال

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


 


رأيت مثال عجبني وحبيت أنفذه ، في هذا المثال عندما يضع المستخدم رقم في ال JTextField يولد JTextField بالعدد الذي وضعه و عند الضغط على Total يحسب مجموع الأعداد المدخلة في النص


 


Generatorexample01_zpsc2d146a9.jpg


 


وصلت حتى ال jButton2ActionPerformed هل من أفكار :)  ؟


0

شارك هذا الرد


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

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

  • 0

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

 

أعجبتني فكرة التمرين ! :rolleyes:

 

هذه محاولتي :

import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Random;import javax.swing.*;/** * * @author Snack3r */public class GeneratorDemo extends JDialog implements ActionListener {    private Container container;    private JPanel topPanel, centerPanel, bottomPanel, view;    private JTextField valueNumbers;    private JButton generate, random, calcul;    private JLabel result;    private JScrollPane scroller;    private ArrayList<JTextField> list;    private int number;    public void init() {        valueNumbers = new JTextField();        valueNumbers.setPreferredSize(new Dimension(100, 27));        generate = new JButton("Generate");        generate.addActionListener(this);        topPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 30, 10));        topPanel.add(new JLabel("No. of values"));        topPanel.add(valueNumbers);        topPanel.add(generate);        centerPanel = new JPanel();        centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));        scroller = new JScrollPane(centerPanel);        scroller.setPreferredSize(new Dimension(300, 210));        view = ((JPanel) scroller.getViewport().getView());        random = new JButton("Random");        random.addActionListener(this);        calcul = new JButton("Total");        calcul.addActionListener(this);        result = new JLabel("Total value : ");        bottomPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 70, 10));        bottomPanel.add(random);        bottomPanel.add(calcul);        bottomPanel.add(result);        container = this.getContentPane();        container.setLayout(new BorderLayout());        container.add(topPanel, BorderLayout.NORTH);        container.add(scroller, BorderLayout.CENTER);        container.add(bottomPanel, BorderLayout.SOUTH);        pack();    }    private void addNewField() {        JTextField newField = new JTextField();        newField.setPreferredSize(new Dimension(100, 27));        newField.setAlignmentX(Component.CENTER_ALIGNMENT);        list.add(newField);        view.add(newField);        view.validate();    }    private boolean isListFieldsNotEmpty() {        for (int i = 0; i < list.size(); i++) {            if (list.get(i).getText().isEmpty()) {                return false;            }        }        return true;    }    @Override    public void actionPerformed(ActionEvent e) {        if (e.getSource() == generate) {            try {                number = Integer.parseInt(valueNumbers.getText());                if (number <= 0) {                    JOptionPane.showMessageDialog(null, "Avertissement, la valeur doit être strictement positive !",                            "Valeur invalide", JOptionPane.WARNING_MESSAGE, null);                    view.removeAll();                    return;                }            } catch (NumberFormatException ex) {                JOptionPane.showMessageDialog(null, "Erreur, veuillez saisir un entier !",                        "Valeur incorrecte", JOptionPane.ERROR_MESSAGE, null);                view.removeAll();                return;            }            if (view != null) {                view.removeAll();            }            list = new ArrayList<>();            for (int i = 1; i <= number; i++) {                addNewField();            }            view.revalidate();            view.repaint();        }        if (e.getSource() == random) {            if (list == null) {                JOptionPane.showMessageDialog(null, "Erreur, veuillez tout d'abord générer des champs !",                        "Champs requis non générés", JOptionPane.ERROR_MESSAGE, null);                return;            }            Random src = new Random(System.currentTimeMillis());            for (int i = 0; i < list.size(); i++) {                list.get(i).setText(Integer.toString(src.nextInt(100)));            }        }        if (e.getSource() == calcul) {            if (list == null) {                JOptionPane.showMessageDialog(null, "Erreur, veuillez tout d'abord générer des champs !",                        "Champs requis non générés", JOptionPane.ERROR_MESSAGE, null);                return;            }            if (isListFieldsNotEmpty()) {                long sum = 0L;                for (int i = 0; i < list.size(); i++) {                    sum += Long.parseLong(list.get(i).getText());                }                result.setText("Total value : " + Long.toString(sum));            } else {                JOptionPane.showMessageDialog(null, "Avertissement, veuillez remplir tous les champs !",                        "Champs requis vides", JOptionPane.WARNING_MESSAGE, null);            }        }    }    public static void main(String ...args) {        try {            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        } catch (ClassNotFoundException | InstantiationException |                IllegalAccessException | UnsupportedLookAndFeelException ex1) {            JOptionPane.showMessageDialog(null, "Erreur, Impossible de charger le Look And Feel du système",                    "Chargement échoué", JOptionPane.ERROR_MESSAGE, null);        }        GeneratorDemo gd = new GeneratorDemo();        gd.setTitle("Snack3r's Generator");        gd.init();        gd.setLocationRelativeTo(gd);        gd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);        gd.setVisible(true);    }}

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

post-219439-0-07231100-1415374762_thumb.

 

 

بانتظار مشاركات بقية الإخوة.

تم تعديل بواسطه Snack3r
1

شارك هذا الرد


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

هذه تجربتي مع الكود

 
package generator;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextField;import javax.swing.UIManager;public class Generator extends JFrame implements ActionListener {    JFrame frame;    JPanel panel,panel1,panel2;    JTextField value;    JLabel label,TotalVal;    JButton Generate,total;    int i,finalVal,y,x,m,val;    JScrollPane scroll;    public Generator(){        frame = new JFrame("Mohamed Generator");        frame.setDefaultCloseOperation(3);        frame.setLayout(new BorderLayout());                panel = new JPanel();        panel1 = new JPanel();        panel2 = new JPanel();                panel2.setLayout(new FlowLayout(FlowLayout.CENTER, 25, 10));        panel1.setLayout(new FlowLayout(25, 150, 10));                value = new JTextField();        Generate = new JButton("Generate");        total = new JButton("Total");        TotalVal = new JLabel("Total Value : ");                panel2.add(new JLabel("No. of values"));        panel2.add(value);        value.setPreferredSize(new Dimension(250, 27));                panel2.add(Generate);        panel1.add(total);        panel1.add(TotalVal);                scroll = new JScrollPane(panel);                frame.add(scroll,BorderLayout.CENTER);        frame.add(panel1,BorderLayout.PAGE_END);        frame.add(panel2,BorderLayout.PAGE_START);                        frame.setSize(600, 400);        frame.setLocationRelativeTo(null);        frame.setVisible(true);                Generate.addActionListener(this);        total.addActionListener(this);    }    public static void main(String[] args) throws Exception {        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        new Generator();    }    @Override    public void actionPerformed(ActionEvent e) {        try{        val = Integer.parseInt(value.getText());        }catch(Exception ex){            JOptionPane.showMessageDialog(rootPane, "يرجى ادخال قيمة عددية");        }        if(e.getSource() == Generate){                        for(i = 1; i <= val; i++){                Random ran = new Random();                JTextField txt = new JTextField(Integer.toString(ran.nextInt(200)));                panel.setLayout(new GridLayout(val,0));                panel.add(txt);                frame.setSize(599, 399);                x = finalVal;                finalVal = Integer.parseInt(txt.getText());                y = y + x;            }            m = y + finalVal;        }if(e.getSource() == total){            TotalVal.setText("Total Value : " + m);        }    }}

 

 

VsoHYt.png

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

شارك هذا الرد


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

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

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



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

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

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