IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Besoin d'aide avec les textfield


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Actuaire
    Inscrit en
    Juillet 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Actuaire
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 49
    Par défaut Besoin d'aide avec les textfield
    Salut à tous!
    Dans le cadre d'un projet à la fac, je dois réaliser un programme en JAVA visant a appliquer a une série de données la méthode des K Means.
    Je sollicite votre aide pour l'interface graphique. En effet, je génère aléatoirement N données avec une classe TabRandom(N) , qui prend donc le nombre de données a générer en argument.
    Dans l'interface graphique, j'aimerais faire la chose suivante:
    Un champ dans lequel on rentre le nombre de données a générer N, et un bouton générer, lancant la méthode TabRandom.

    La difficulté est la : comment récupérer le contenu du textfield pour le passer en argument dans le bouton générer?

    si c'est nécessaire, je vous poste le code plus tard, et si vous avez des liens vers des tutos clairs, n'hésitez pas!

    Merci d'avance
    Guillaume

  2. #2
    Membre chevronné
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Par défaut
    Bonjour,
    monTextField.getText() retourne le texte contenu dans le composant
    hérité de TextComponent

    voir http://docs.oracle.com/javase/7/docs....html#getText()

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 133
    Par défaut
    Ouais tu peux récupérer le contenu de ton JTextField grâce à ce que t'as posté kox.

    Par contre fait attention car tu vas peut-être récupérer un string, donc si tu veux un int, tu vas devoir faire Integer.valueOf(JTextField.getText())

  4. #4
    Membre chevronné
    Homme Profil pro
    Ed Nat
    Inscrit en
    Janvier 2013
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 325
    Par défaut
    Bonjour,
    plutôt ce genre de chose si tu veux récupérer un int :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int val;
    try{
    	val=Integer.valueOf(monTextField.getText());
    }
    catch(NumberFormatException nfe){
    	val=0;
    }
    ou mieux, tu passes au JFormattedTextField au lieu de JTextField, ce qui va te permettre de forcer la saisie de nombres entiers :

    Pour le créer avec saisie d'entiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JFormattedTextField jtf=new JFormattedTextField(NumberFormat.getIntegerInstance());
    Pour récupérer un entier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int val=(Integer) jtf.getValue();
    et pour en savoir plus : http://docs.oracle.com/javase/7/docs...TextField.html

  5. #5
    Membre confirmé
    Homme Profil pro
    Actuaire
    Inscrit en
    Juillet 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Actuaire
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 49
    Par défaut
    Merci pour votre aide, mais j'ai quand même du mal a récuperer la valeur ( je suis pas très a l'aise avec les interactions entre les différentes classes.
    Voici donc les codes des différentes classes:

    Ca c'est la classe de la fenêtre de menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    package Package1;
    import javax.swing.*;
    import javax.swing.text.JTextComponent;
     
    import java.awt.*;
    import java.awt.event.*;
     
     
    public class FenetrePrincipale extends JFrame implements ActionListener{
    	private JTextField textField;
    	private JLabel label;
    	String ch;
    	//Constructeur de la fenetre principale pour l'appeller dans la classe Principale
     
    	public FenetrePrincipale(){
    		super(); //recuperation des methodes et constructeurs de JFrame
    		build();//Initialisation de la fenetre
    	 }
     
    	private void build(){
    		setTitle("Outil de calcul Data Mining"); //Titre de la fenetre
    		setSize(500,200); //Taille de la fenetre
    		setLocationRelativeTo(null); //fenetre centree
    		setResizable(true); //fenetre redimensionnable
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    		//On dit a l'application de se fermer lors du clic sur la croix
    		setContentPane(buildContentPane());
    	}
     
    	private JPanel buildContentPane(){
     
    		JComboBox choixmethode; //initialisation de la variable liste deroulante
    		JTextField nbclusters; //initialisation de la zone de texte nbclusters
    		JTextField donneesrandom; //initialisation de la zone de texte donneesrandom
     
    		//Création de la fenetre
    		JPanel panel = new JPanel(); 
    		panel.setLayout(new GridLayout(6,2));
    		panel.setBackground(Color.lightGray);
     
    		//Création de la liste deroulante
    		JLabel labelcalcul = new JLabel("Méthode de calcul"); //texte
    		Object[] elements = new Object[]{"K-Means", "K-Medoïds"}; //liste déroulante
    		choixmethode = new JComboBox(elements);
     
    		//Création de la zone de texte nbclusters
    		JLabel labelcluster = new JLabel("Nombre de clusters"); //texte
    		nbclusters = new JTextField(); //zone de texte
     
    		//Création d'un bouton parcourir
    		JLabel labelimportation = new JLabel("Importation de données"); //texte
    		JButton parcourir = new JButton("Parcourir..."); //bouton parcourir
    		parcourir.addActionListener(this); //action du bouton parcourir
     
    		//Création de la zone de texte donneesrandom
    		JLabel labelrandom= new JLabel("Ou nombre de données aléatoirement générées"); //texte
    		donneesrandom = new JTextField(); //zone de texte
    		JButton generer = new JButton(new ActionGenerer(this, "Générer les données")); //bouton parcourir
     
    		//Création d'un bouton Executer
    		JButton executer = new JButton("Executer");
     
     
    		//Ajout la fenetre
    		panel.add(labelcalcul);
    		panel.add(choixmethode);
    		panel.add(labelcluster);
    		panel.add(nbclusters);
    		panel.add(labelimportation);
    		panel.add(parcourir);
    		panel.add(labelrandom);
    		panel.add(donneesrandom);
    		panel.add(generer);
    		panel.add(executer);
    		ch = donneesrandom.getText();
     
     
    		return panel;
    	}	
     
     
    	public void actionPerformed(ActionEvent e) { //action du bouton parcourir //xls ou csv
    		JFileChooser chemin = new JFileChooser();
            int returnVal = chemin.showOpenDialog(getParent());
            if(returnVal == JFileChooser.APPROVE_OPTION) {
               System.out.println("Fichier choisis :" +
                    chemin.getSelectedFile().getName());}
    	}
     
    }
    Ca c'est la classe de génération de nombres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    package Package1;
     
    public class TabRandom{
     
    	 int tab [][];
    	 int nobs;
     
    	 public TabRandom(int nobs){
    		 this.nobs=nobs;
    		 tab=new int[this.nobs][2];
    	 }
     
    	 public void remplissage(){
    		 for(int i=0;i<tab.length;i++){
    			 tab[i][0]=(int) (Math.random()*100); //1ère colonne
    			 tab[i][1]=(int) (Math.random()*100); //2ème colonne
    			 }
    	 }
     
     
    	 public String affiche(){
    		 String res="";
    		 for(int i=0;i<nobs;i++){
    			 res = res + tab[i][0] + " " + tab[i][1] + "\n";
    		 }
    		 return res;
    	 }
     
     
     
    }
    Et ca c'est le bouton action "générer"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package Package1;
     
    import java.awt.event.*;
    import java.lang.*;
    import javax.swing.*;
     
    public class ActionGenerer extends AbstractAction {
     
     
    	private FenetrePrincipale fenetre;
    	String nobs;
     
    	public ActionGenerer(FenetrePrincipale fenetre, String texte){
    		super(texte);
    		this.fenetre = fenetre;
     
    	}
     
    	public void actionPerformed(ActionEvent e) { 
    		TabRandom tab=new TabRandom(50);
    		tab.remplissage();
    		System.out.println(tab.affiche());
     
     
    	}
     
    }
    Je n'arrive pas a récuperer la valeur rentrée dans le textfield et l'appliquer au bouton action!
    Merci de votre aide!
    Guillaume

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 133
    Par défaut
    Là si j'ai bien compris tu veux passer un nombre à ton bouton "générer" mais tu ne donnes qu'une fenêtre et un texte où tu as mis "Générer les données"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public ActionGenerer(FenetrePrincipale fenetre, String texte){
    		super(texte);
    		this.fenetre = fenetre;
     
    	}
    C'est dans ce "texte" que tu veux lui donner l'entier N ?

Discussions similaires

  1. Besoin d'aide avec les filtres imagemagick
    Par vallica dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 04/07/2008, 16h23
  2. besoin d'aide avec les session
    Par alain57 dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2006, 20h25
  3. Besoin d'aide avec les regxp
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 04/04/2006, 12h28
  4. Besoin d'aide avec les fichier htaccess et htpasswd
    Par Polux000 dans le forum Apache
    Réponses: 2
    Dernier message: 26/01/2006, 00h05
  5. Réponses: 2
    Dernier message: 29/08/2003, 17h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo