Convertir Applet en JFrame

Convertir Applet en JFrame - Java - Programmation

Marsh Posté le 04-04-2014 à 19:18:47    

Bonjour,
 
Je me dirige vers vous car j'ai du mal à comprendre comment bien convertir un code JAVA d'Applet vers un JFrame. En effet je possède bien évidemment les codes sources.
 
Est ce que ces étapes suffissent ?
 
Chnager  

Code :
  1. import java.applet.Applet;
  2. import java.awt.Graphics;
  3. public class Histogramme extends Applet {


 
En  

Code :
  1. import java.awt.Graphics;
  2. import javax.swing.JFrame;
  3. public class Histogramme extends JFrame {


 
Et ajouter une méthode main :
 

Code :
  1. public static void main(String[] args) {
  2.  new Histogramme();
  3. }


 
 
Est ce que cela suffit ?
Je vous en remercie d'avance
Bonne journée

Reply

Marsh Posté le 04-04-2014 à 19:18:47   

Reply

Marsh Posté le 04-04-2014 à 19:36:44    

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 :
  1. public class Histogramme extends JPanel
 

Ensuite je ferai une classe Launcher.java avec une méthode main

 
Code :
  1. try {
  2.   new Launcher();
  3. } catch (Exception e) {
  4.   //si le Launcher plante on a une chance d'avoir l'erreur dans la console
  5.   System.out.println("Erreur " + e.getMessage());
  6. }
 

Et dans le constructeur du Launcher

 
Code :
  1. public Launcher() {
  2.   // Create the frame.
  3.   JFrame frame = new JFrame("Histogramme" );
  4.   // Optional: What happens when the frame closes?
  5.   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  6.   //  Size the frame.
  7.   frame.pack();
  8.   //locate the frame
  9.   frame.setLocation(100, 100);
  10.   // Show it.
  11.   frame.setVisible(true);
  12.   // Validate frames that have preset sizes
  13.   if (packFrame)
  14.     frame.pack();
  15.   else
  16.     frame.validate();
  17.   //et hop un nouveau Panel
  18.   Histogramme histo = new Histogramme();
  19.   // on taille la frame
  20.   frame.setSize(500, 400);
  21.   // on ajoute le panel au centre du BorderLayout ajouté dans la frame
  22.   frame.getContentPane().add(histo, BorderLayout.CENTER);
  23. }
 

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
Reply

Marsh Posté le 05-04-2014 à 15:41:04    

Bonjour,
 
Je tiens vraiment à vous remercier willy le kid pour tout le temps que vous consacrez à la réponse à mes questions.
 
En effet, j'ai suivi vos instructions et on remplaçant extends Applet par extends JPanel, j'ai des erreurs de compilations :
 
En effet, pour la ligne :  photo[0] = new  ImageIcon(getImage(getCodeBase(),"Images/Terre.gif" ));
le programme ne reconnait plus getCodeBase, la meme chose pour this.getContentPane().setLayout(null); et this.getContentPane().add(jLabel9, null);
 
Après des petites recherches, ces méthodes sont bien relatives à des Applet (http://docs.oracle.com/javase/7/docs/api/java/applet/Applet.html#getCodeBase%28%29)  
Existe t'il des équivalents de ces méthodes en JPanel/JFrame?
 
Merci beaucoup
Bonne journée

Reply

Marsh Posté le 05-04-2014 à 16:33:18    

julienjava a écrit :

Je tiens vraiment à vous remercier willy le kid pour tout le temps que vous consacrez à la réponse à mes questions.


 
La réponse m´a pris quelques minutes, le code vient d'une adaptation que j´ai déjà faite.
 
La je vais faire pareil, je vais répondre de tête, essaye un  
Image image = Toolkit.getDefaultToolkit().getImage("Terre.gif" );
 
ou google "load image java application"
 
Comme tu as osé m'envoyer le source en privé, saches que je peux le regarder et faire ton travail,
mais pas gratuitement. Il ne faut pas abuser non plus.

Message cité 1 fois
Message édité par willy le kid le 05-04-2014 à 19:59:36
Reply

Marsh Posté le 06-04-2014 à 14:17:26    

willy le kid a écrit :


Comme tu as osé m'envoyer le source en privé, saches que je peux le regarder et faire ton travail,
mais pas gratuitement. Il ne faut pas abuser non plus.


 
Ca m'a rappelé cette histoire :  

Citation :

Un ingénieur informatique a sous-traité son travail à une société chinoise, à l’insu de sa hiérarchie, qui le complimentait pour ses bons et loyaux services. Jusqu’à ce qu’un audit de sécurité mette en lumière cette combine.


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed