|
| olga! | Posté le 16/09/2004 @ 13:10 |
Petit astucien
58 Messages
| Bonjour a tous je chercche a r&aliser mon premier programe java avec une IHM swing, mais les composants restent de taille fixe quand j'agrandie la fenetre.
qq'1 peut-il m'indiquer la marche a suivre pour résoudre ce probleme merci d'avance.
|
| |
| |
| Publicité |
|
|
| tig | Posté le 16/09/2004 à 13:18 |
Petit astucien
459 Messages
| Hello,
If faut créer une fonction qui allonge les composant en fonction de la taille de ta fenêtre. Malheureusement, ce n'est pas automatique. Tu utilise quel éditeur ?
@+ |
| |
|
| olga! | Posté le 16/09/2004 à 13:37 |
Petit astucien
58 Messages
| bonjour tig
j'utilise jBuilder 6
Peux tu m'en dire + sur cette fonction?
merci |
| |
|
| tig | Posté le 16/09/2004 à 14:14 |
Petit astucien
459 Messages
| Un petit exemple qui récupère la longueur et l'affiche dans un champ.
En espérant que cela puisse t'aider
----------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* <p>Titre : </p>
* <p>Description : </p>
* <p>Copyright : Copyright (c) 2004</p>
* <p>Société : </p>
* @author non attribuable
* @version 1.0
*/
public class Cadre1 extends JFrame {
JPanel contentPane;
JTextField jTextField1 = new JTextField();
double longueurChamp = 0 ;
double longueurFenetre = 0 ;
//Construire le cadre
public Cadre1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Initialiser le composant
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jTextField1.setText("jTextField1");
jTextField1.setBounds(new Rectangle(29, 50, 175, 21));
contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle("Titre du cadre");
contentPane.addComponentListener(new Cadre1_contentPane_componentAdapter(this));
contentPane.add(jTextField1, null);
longueurChamp = jTextField1.getBounds().getWidth() ; //récupérer la taille initiale
longueurFenetre = contentPane.getBounds().getWidth() ; //récupérer la taille initiale
}
//Supplanté, ainsi nous pouvons sortir quand la fenêtre est fermée
protected void processWindowEvent(WindowEvent e) {
Super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void contentPane_componentResized(ComponentEvent e) {
//Code pour la modification de la taille
double difference = e.getComponent().getBounds().getWidth() - longueurFenetre ;
jTextField1.setText(String.valueOf(difference)) ;
}
}
class Cadre1_contentPane_componentAdapter extends java.awt.event.ComponentAdapter {
Cadre1 adaptee;
Cadre1_contentPane_componentAdapter(Cadre1 adaptee) {
this.adaptee = adaptee;
}
public void componentResized(ComponentEvent e) {
adaptee.contentPane_componentResized(e);
}
} |
| |
|
| olga! | Posté le 16/09/2004 à 15:37 |
Petit astucien
58 Messages
| merci tig pour ta reponse
je m'en vais tester ca @+ |
| |
|
| i.took.the.red.pill | Posté le 18/09/2004 à 18:42 |
Petit astucien
73 Messages
| Bonjour
tu peux toujours placer tes composants dans ta dfenetre en "codant".
Pour ca tu devra utiliser un LayoutManager
pour plus de precision sur les layout va sur java.sun.com dans l'api ou cherche les tutoriaux
@+ |
| |
|
|
| Haut de la page |