Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Swing ou bien AWT?
Swing ou bien AWT?
Qu'est que c'est: Swing respectivement AWT
Tout les deux sont des librairies des classes pour créer des programmes avec
une interface graphique avec des fenêtres, zones de text, buttons etc..
AWT était développé premièrement étant assez limité . Swing était ajouté plus
tard se basant partiellement sur AWT.
Swing est plus riche en fonctionnalités que AWT.
Aujourd'hui il n y a probablement pas de raison d'écrire une application en
AWT car il est même possible d'écrire des Applets en Swing.
Caractéristique principal de source-code Swing:
On reconnait un programme Swing par le nom des classes de composants qui
commencent tous avec un 'J'.
Exemple pour un button en:
AWT: Button b1=new Button("bitte klicken");
Swing: JButton b1 = new JButton("bitte klicken");
En plus le code Swing a besoin d'importer la librairie suivante:
import javax.swing.*
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Un premier exemple:
Un premier exemple:
Tout d'abord un programme très simple avec une fenêtre vide:
AWT:
Swing:
Quelle que chose de remarquable?
Tout les deux applications ne se termine pas correctement quand on click sur
le button de fermeture 'x'!
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
A partir de maintenant nous n'utilisant que Swing
A partir de maintenant nous n'utilisant que Swing
Fermer un JFrame correctement:
Héritage de JFrame:
Jusqu'à maintenant nous avons crées un objet de JFrame dans la méthode
main(...) , il est cependant mieux d'hériter de JFrame:
JFrame
Swing_Frame2
Ajouter cette ligne
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Dessiner dans un Frame:
Dessiner dans un Frame:
Il n'est pas recommandable de dessiner directement dans un JFrame, il
faut plutôt ajouter un JPanel et récrire la méthode paint(...):
public class Swing_Frame extends JFrame{
//Our Custom JFrame needs a constructor
public Swing_Frame4(String title) throws HeadlessException {
super(title);
this.add(new DrawPanel());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 250);
}
public static void main(String[] args) {
JFrame frame1 = new Swing_Frame("Frame with Drawingspace");
frame1.setVisible(true);
}
}
public class DrawPanel extends JPanel {
public void paint(Graphics g) {
super.paint(g);
g.setFont(new Font("Arial",Font.PLAIN,24));
g.drawString("Drawing with Java is easy!", 10,
20);
g.setColor(Color.red);
g.drawRoundRect(20, 40, 60, 40, 20, 10);
g.setColor(Color.blue);
g.drawLine(50, 50, 160, 200);
g.setColor(Color.green);
g.fillOval(150, 50, 60, 100);
}
}
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Haute ecole bienne, Microtechnique et Technique médical , Java Programmation GUI, Peter Füss
Mécanisme:
Mécanisme:
Pourquoi faut-il la méthode paint(...) pour dessiner?
Un programme dans une environnement graphique est controllé par des
évènement
A tout le temps quand le fenêtre dois être redessiné le système d'exploitation
appèle la méthode paint(...).
Tous qui est programmé dans la méthode paint(...) est redessiné alors.
Il faudrait toujours dessiner dans un propre Panel et non pas dans
un JFrame.
Le contexte graphique qui est passé à la méthode
'paint(Graphics g)' peut on regarder comme une feuille à dessin.
Au lieu d'utiliser un crayon on se sert des méthodes comme
drawRectangle(...) ou drawLine(...) etc.
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !