Programme java

[Résolu/Fermé]
Signaler
-
 damien7258 -
Bonjour,alors voila j'ai fait un programme tous bête sous éclipse qui permet d'afficher une fenêtre et cliquer sur des boutons or je ne vois pas du tous pourquoi sa ne marche pas merci d'avance pour votre aide.

programme:

public class Fenetre extends JFrame implements ActionListener
//Fenetre hérite de JFrame et d'un heritage d'implementation.
{

private JTextField champ_saisie, champ_resultat,text;
private JButton b_calcul, b_quitter;
//On definit des variable de type texte et boutton.

public Fenetre()
{
setTitle("Salut");
//Définit un titre pour la fenêtre
Container cf=getContentPane();

JPanel P1=new JPanel();
P1.add(new JLabel ("Login:"));

champ_saisie=new JTextField(20);
P1.add(champ_saisie);
cf.add("North",P1);

JPanel P2=new JPanel();
P2.setLayout(new FlowLayout(FlowLayout.RIGHT));
//le Layout permet de positionner nos composants sur un contentPane
//gestionnaire de mise en page par défaut(FlowLayout)
P2.add(new JLabel("mot de Passe"));
////Instanciation d'un objet JPanel
champ_resultat=new JTextField(20);
//
P2.add(champ_resultat);
cf.add("Center",P2);

JPanel P3=new JPanel();
P3.setLayout(new FlowLayout(FlowLayout.RIGHT));
b_calcul=new JButton("calcul");
b_quitter=new JButton("Quitter");
P3.add(b_calcul);
P3.add(b_quitter);
//Ajout des boutons à notre contentPane
cf.add("South",P3);

//On ajoute notre Fenetre à la liste des auditeurs de nos Boutons
b_calcul.addActionListener(this);
b_quitter.addActionListener(this);


}

//C'est la méthode qui sera appelée lors d'un clic sur nos boutons
public void ActionPerformed(ActionEvent arg) {



Object source=arg.getSource();
if(arg.getSource() == b_calcul)
//permet de savoir si on a cliquer sur le bouton b_calcul
{
String res=champ_saisie.getText();
champ_resultat.setText(res.toUpperCase());

}
else if(arg.getSource() == b_quitter)
{
text.setText("Vous avez cliqué sur le bouton quitter");
System.out.println("Fin");
System.exit(0);
}


}
}
public class Testfenetre
{
public static void main(String[] args)
throws IOException , NullPointerException
{
Fenetre f1=new Fenetre();
f1.pack();
f1.setVisible(true);
/**L’affichage d’une fenêtre graphique de type JFrame se commande par la
méthode setVisible.*/
}
}

5 réponses

Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
852
Bonjour,

Voilà le code correct pour ta classe, il faut que tu ajoute les ActionListener directement à tes objets champ.
Surtout que dans une méthode addActionListener, c'est un objet de type 'ActionListener' qui est attendu, et non un objet de classe JFrame. Il faut regarder les messages d'erreurs que tu obtiens lorsque tu compiles ou visulise ton programme sous un IDE tel qu'Eclipse, sinon tu risques de mettre du temps à faire tes programmes si tu y vas au pifomètre...

Un dernier conseil : n'oubli de toujours initialiser tes objets de classe dans ton/tes constructeur, sinon tu risque d'avoir des nullPointerException lors de l'exécution. C'était le cas pour l'objet 'text' par exemple (en gras dans le code)


public class Fenetre extends JFrame {

	private JTextField champ_saisie, champ_resultat,text;
	private JButton b_calcul, b_quitter;
//	  On definit des variable de type texte et boutton.

	public Fenetre()
	{
		
	setTitle("Salut");
//	  Définit un titre pour la fenêtre
	Container cf=getContentPane();

	JPanel P1=new JPanel();
	P1.add(new JLabel ("Login:"));

	text = new JTextField();
	champ_saisie=new JTextField(20);
	P1.add(champ_saisie);
	cf.add("North",P1);

	JPanel P2=new JPanel();
	P2.setLayout(new FlowLayout(FlowLayout.RIGHT));
//	  le Layout permet de positionner nos composants sur un contentPane
//	  gestionnaire de mise en page par défaut(FlowLayout)
	P2.add(new JLabel("mot de Passe"));
//	  //Instanciation d'un objet JPanel
	champ_resultat=new JTextField(20);
//
	P2.add(champ_resultat);
	cf.add("Center",P2);

	JPanel P3=new JPanel();
	P3.setLayout(new FlowLayout(FlowLayout.RIGHT));
	b_calcul=new JButton("calcul");
	b_quitter=new JButton("Quitter");
	P3.add(b_calcul);
	P3.add(b_quitter);
	
	b_calcul.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub

			String res=champ_saisie.getText();
			champ_resultat.setText(res.toUpperCase());
		}
	});
	b_quitter.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			text.setText("Vous avez cliqué sur le bouton quitter");
			System.out.println("Fin");
			System.exit(0);
		}
	});
	
//	  Ajout des boutons à notre contentPane
	cf.add("South",P3);
	}
	

	public static void main(String[] args){
		Fenetre f1=new Fenetre();
		f1.pack();
		f1.setVisible(true); 
	}
	
}




1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Aider moi svp
Personne?
Pouvez-vous me conseiller un autres site sinon.
Merci pour ces précieux conseil oui j'utilise bien éclipse pour compiler mais j'attaque juste la programmation java donc j'ai un peu de mal.
Encore merci