Je convertirai l'applet en JPanel Swing de préférence. C'est plus logique, dans les API java, un panneau c'est un panneau pour placer des composants graphiques, une Frame c'est une fenêtre, et il est important de ne pas confondre.
Dans les cas simples on peut se passer de Panel intermédiaire et mettre les composants graphiques dans la Frame 'en direct', mais mon expérience dit qu'on s'expose à des bugs et ...
donc a priori
Code :
- public class Histogramme extends JPanel
|
Ensuite je ferai une classe Launcher.java avec une méthode main
Code :
- try {
- new Launcher();
- } catch (Exception e) {
- //si le Launcher plante on a une chance d'avoir l'erreur dans la console
- System.out.println("Erreur " + e.getMessage());
- }
|
Et dans le constructeur du Launcher
Code :
- public Launcher() {
- // Create the frame.
- JFrame frame = new JFrame("Histogramme" );
- // Optional: What happens when the frame closes?
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- // Size the frame.
- frame.pack();
- //locate the frame
- frame.setLocation(100, 100);
- // Show it.
- frame.setVisible(true);
- // Validate frames that have preset sizes
- if (packFrame)
- frame.pack();
- else
- frame.validate();
- //et hop un nouveau Panel
- Histogramme histo = new Histogramme();
- // on taille la frame
- frame.setSize(500, 400);
- // on ajoute le panel au centre du BorderLayout ajouté dans la frame
- frame.getContentPane().add(histo, BorderLayout.CENTER);
- }
|
La classe non typée launcher a une méthode main qui crée une instance de histogramme (extends JPanel) et l'ajoute au milieu du BorderLayout d'un JFrame ...
Message édité par willy le kid le 04-04-2014 à 20:38:20