Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java]JFormattedTextField

    18 octobre 2006 à 4:58:12

    Bonjour, je veux prendre la valeur d'un text field, mais cette valeur doit être sous forme de valeur numérique pour faire une operation mathematique. Alors j'ai pensé utiliser JFormattedTextField au lieu de JtextField... mais voila j'ai un problème rendu dans l'operation mathématique, probablement un erreur du type de variable?...


    public class fenetreGUI
    {
        JFrame frame;
        JLabel label, label2;
        JButton buton;
        JFormattedTextField field2;
        JTextField field1;
     

      ======Parti importante======== 

        private fenetreGUI ()
        {

            frame = new JFrame ("Calcul de Celsius a Farnheint");
            frame.setDefaultLookAndFeelDecorated (true);
            frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            frame.setSize (320, 240);

            //creation de label dans fenetre
            label = new JLabel ("Reponse");
            label2 = new JLabel ("Degre Kelvin");

            //textfield propretys
           
            NumberFormat format;
            format = NumberFormat.getInstance ();
            format.setMaximumFractionDigits (2);
            field2 = new JFormattedTextField (format);
         
           
            //bouton dans fenetre
            buton = new JButton ("Calculer");
            buton.setMnemonic (KeyEvent.VK_I);
            //action quand click le ok
            buton.addActionListener (new ActionListener ()
            {
                public void actionPerformed (ActionEvent e)
                {
                    label.setText ("I pressed the ok button");
                 
                   
                    label.setText ((9 / 5) * (field2.getValue() + 32));

                }
            }
            );
    =============fin de la partit importante =========
    //Panel1 qui possede les composantes du frame
            JPanel panel1 = new JPanel (new FlowLayout /*this is same as line under*/());
            //panel1.setLayout (new FlowLayout ());
            panel1.add (label);
            panel1.add (label2);

            //panel2 avec le bouton du frame
            JPanel panel2 = new JPanel ();
            panel2.setLayout (new GridLayout ());
            panel2.add (field1);
            panel2.add (field2);
            panel2.add (buton);


            //ajoute le panel au frame
            frame.getContentPane ().add (panel1, BorderLayout.CENTER);
            frame.getContentPane ().add (panel2, BorderLayout.PAGE_END);

            //initialisation de la fenetre
            frame.setVisible (true);
        }


        public static void main (String[] args)
        {

            try
            {
                UIManager.setLookAndFeel ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //getting the java swing look
            }
            catch (Exception e)
            {
            }
            SwingUtilities.invokeLater (new Runnable ()
            {
                public void run ()
                {
                    fenetreGUI gui = new fenetreGUI (); //creation de la fenetre
                }
            }
            );
        }
    }

    • Partager sur Facebook
    • Partager sur Twitter
      18 octobre 2006 à 6:49:46

      Il y a plusieurs moyen voici un exemple (toujours util de connaitre les moyens de conversions).

             
      buton.addActionListener (new ActionListener ()
              {
                  public void actionPerformed (ActionEvent e)
                  {
                     float mon_resultat;
                     mon_resultat = ((9 / 5) * (Float.parseFloat(field2.getText()) + 32);
                   
                     
                      label.setText (String.valueOf(mon_resultat));

                  }
              }
              );


      ça c'est une méthode de conversion allez petit bonus si tu as par exemple des widgets ou ce que tu veux que tu aimerai bien ranger dans un tableau il suffit de faire
      Object[] mon_tableau = new Object[100];
      mon_tableau[0] = new JLabel();

      si tu veux ensuite afficher et ou modifier ton label tu fais ça :
      ((JLabel)mon_tableau[0]).nom_de_la_methode();


      Voilà mes 2 centimes au sujet de la conversion de type et ou transtyptage en java ;)
      • Partager sur Facebook
      • Partager sur Twitter
        18 octobre 2006 à 13:49:54

        MErci beaucoup, je vais l'essayer...
        • Partager sur Facebook
        • Partager sur Twitter

        [Java]JFormattedTextField

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown