Senjinsama
Messages postés2Date d'inscriptionsamedi 26 août 2017StatutMembreDernière intervention26 août 2017
-
26 août 2017 à 15:50
Senjinsama
Messages postés2Date d'inscriptionsamedi 26 août 2017StatutMembreDernière intervention26 août 2017
-
26 août 2017 à 16:20
Bonjour à tous,
J'ai commencé cette semaine à travailler sur Swing et les interfaces graphiques, et j'essaie de réaliser un convertisseur "Km/Miles" avec un JSlider, qui changerait en temps réel la valeur de la distance en km (soit qui démarre de 0, soit indiqué à la main dans un JTextField), et la distance en miles (avec la conversion mathématique qui va bien ^^).
J'ai un souci avec ChangeListener.
public Fenetre() { // JFrame this.setSize(400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("Convertisseur Km en Miles"); this.setLocationRelativeTo(null);
// Panel principal panPrinc = new JPanel(new GridLayout(2,1));
// Panel Km panKm = new JPanel(); panKm.setBorder(BorderFactory.createTitledBorder("Distance en kilomètres")); valeurKm = new JTextField(); valeurKm.setPreferredSize(new Dimension(50,30)); labelKm = new JLabel("km"); sliderKm = new JSlider(JSlider.HORIZONTAL,0,100,0); sliderKm.setMajorTickSpacing(10); sliderKm.setMinorTickSpacing(1); sliderKm.setPaintLabels(true); sliderKm.setPaintTicks(true); panKm.add(valeurKm); panKm.add(labelKm); panKm.add(sliderKm);
// panel Miles panMiles = new JPanel(); panMiles.setBorder(BorderFactory.createTitledBorder("conversion en miles")); conversionMiles = new JLabel(); labelMiles = new JLabel("miles"); labelMiles.setOpaque(true); panMiles.add(conversionMiles); panMiles.add(labelMiles);
// ChangeListener du slider
// les panels panPrinc.add(panKm); panPrinc.add(panMiles);
@Override public void changed(ObservableValue observable, Object oldValue, Object newValue) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. }
}
Comme vous pouvez le constater, la méthode "implémentée" par le ChangeListener ne correspond en rien avec ce que j'ai pu lire sur différents site, notamment celui d'Oracle, à savoir stateChanged(ChangeEvent e).
bien évidemment, en le modifiant, ça me fait des erreurs.
Que faire ? est-ce normal ?
PS : pour information, j'ai une autre classe Main, où je ne fais qu'appeler l'objet Fenetre, afin de lancer l'appli.
KX
Messages postés16703Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 1 juin 2023126 26 août 2017 à 16:04
Bonjour,
Historiquement pour faire des interfaces graphiques en Java il y a eu AWT (en Java 1), Swing (en Java 2) puis Java FX (en Java 8).
Pour des raisons de compatibilité avec les anciens programmes il est encore possible de faire du AWT/Swing mais aujourd'hui les nouveaux programmes devraient plutôt être fait en Java FX.
Regarde tes imports, tu as du java.awt, du javax.swing et du javafx, c'est de ce mélange que vient ton problème, car le ChangeListener dont tu as besoin c'est celui de Swing, mais tu as importé celui de Java FX.
Senjinsama
Messages postés2Date d'inscriptionsamedi 26 août 2017StatutMembreDernière intervention26 août 2017 26 août 2017 à 16:20
Ahah !!! je ne fais jamais attention à ce que j'importe : ALT+Entrée et le rouge disparait... ça m'apprendra !!! xD
Une erreur de débutant résolue !!! ;)
26 août 2017 à 16:20
Une erreur de débutant résolue !!! ;)
Merci beaucoup, KX :)