Problème pour faire afficher un résultat

Résolu
manuel2math - 6 nov. 2012 à 16:30
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 8 nov. 2012 à 08:38
bonjour,
je suis un petit nouveau dans le monde de la programmation et j'ai grand besoin d'aide...

J'ai créé un programme dans éclipse qui a pour but de calculer la distance entre deux points connaissant leurs coordonnées(pas hyper intéressant mais c'était surtout pour appréhender le langage java et pour découvrir le fonctionnement d'une interface graphique)

Voici le problème : le programme fait bien le calcul (car on peut l'afficher) mais je n'arrive pas à afficher le résultat de ce calcul dans la fenêtre !!



Voici le programme :

package pgmtion_objet;

import pgmtion_objet.Point;


import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JEditorPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Scanner;
import javax.swing.JTextField;
import javax.swing.JSpinner;
import java.awt.Color;
import com.jgoodies.forms.factories.DefaultComponentFactory;
import java.awt.Panel;
import java.awt.Canvas;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class test extends JDialog {

private final JPanel contentPanel = new JPanel();
private JTextField abscisseB;
private JTextField ordonneeB;
private JTextField abscisseA;
private JTextField ordonneeA;



public static void main(String[] args) {
try {
test dialog = new test();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}

public test() {

setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);

JLabel lblCalculonsLaDistance = new JLabel(" CALCULONS LA DISTANCE ENTRE DEUX POINTS :");
lblCalculonsLaDistance.setFont(new Font("Comic Sans MS", Font.BOLD, 15));
lblCalculonsLaDistance.setBounds(10, 11, 414, 42);
contentPanel.add(lblCalculonsLaDistance);

JLabel lblEntrerLabscisseDu = new JLabel(" Entrer l'abscisse du point A : ");
lblEntrerLabscisseDu.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblEntrerLabscisseDu.setBounds(20, 54, 189, 25);
contentPanel.add(lblEntrerLabscisseDu);

abscisseA = new JTextField();
abscisseA.setBounds(277, 57, 86, 20);
contentPanel.add(abscisseA);
abscisseA.setColumns(10);

JLabel lblEntrerLordonneDu = new JLabel(" Entrer l'ordonn\u00E9e du point A : ");
lblEntrerLordonneDu.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblEntrerLordonneDu.setBounds(30, 81, 179, 15);
contentPanel.add(lblEntrerLordonneDu);

ordonneeA = new JTextField();
ordonneeA.setBounds(277, 79, 86, 20);
contentPanel.add(ordonneeA);
ordonneeA.setColumns(10);

JLabel label = new JLabel(" Entrer l'abscisse du point B : ");
label.setFont(new Font("Tahoma", Font.PLAIN, 12));
label.setBounds(20, 102, 189, 25);
contentPanel.add(label);

abscisseB = new JTextField();
abscisseB.setBounds(277, 102, 86, 20);
contentPanel.add(abscisseB);
abscisseB.setColumns(10);

JLabel label_1 = new JLabel(" Entrer l'ordonn\u00E9e du point B : ");
label_1.setFont(new Font("Tahoma", Font.PLAIN, 12));
label_1.setBounds(30, 130, 179, 15);
contentPanel.add(label_1);

ordonneeB = new JTextField();
ordonneeB.setBounds(277, 125, 86, 20);
contentPanel.add(ordonneeB);
ordonneeB.setColumns(10);

JButton btnCalcul = new JButton("CALCUL");

btnCalcul.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//transforme une chaine de caractère en variable numérique
doublex1=Double.parseDouble(abscisseA.getText());
doublex3=Double.parseDouble(abscisseB.getText());
doublex2=Double.parseDouble(ordonneeA.getText());
doublex4=Double.parseDouble(ordonneeB.getText());

Point p1 = new Point (x1, x2);
Point p2 = new Point (x3, x4);

double dist = p1.distance(p2);
System.out.println(dist);

}
});

btnCalcul.setBounds(274, 157, 89, 23);
contentPanel.add(btnCalcul);


JLabel lblLaDistanceAb = new JLabel("La distance AB est \u00E9gale \u00E0 : ");
lblLaDistanceAb.setFont(new Font("Comic Sans MS", Font.BOLD, 14));
lblLaDistanceAb.setBounds(10, 208, 222, 33);
contentPanel.add(lblLaDistanceAb);


}
}

merci de votre aide...

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
7 nov. 2012 à 08:34
Salut,

Dans ta fenêtre, il faut que sur un JLabel, tu fasses un setText(dist); puis un repaint();

Je te conseil de lire quelques tutoriels sur les layout, ton code serait de meilleure qualité.
3
j'ai rajouté dans le bouton un jlabel et utiliser repaint() et ça a marché !!

Merci beaucoup car ça faisait un moment (très très long) que je cherchais!!
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 nov. 2012 à 08:38
De rien

bon courage pour la suite
a+
0
Rejoignez-nous