Bonjour tout le monde !
Je voulais juste savoir comment faire pour que l'IHM s'adapte automatiquement avec la résolution de l'écran .
Merci d'avance !
Bonjour tout le monde !
Je voulais juste savoir comment faire pour que l'IHM s'adapte automatiquement avec la résolution de l'écran .
Merci d'avance !
bonjour,
pour connaitre les dimensions de l'ecran il faut utiliser la classe Toolkit qui se trouve dans java.awt
ensuite on dimensionne la JFrame
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dimension tailleEcran = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); int hauteur = (int)tailleEcran.getHeight(); int largeur = (int)tailleEcran.getWidth();
Code : Sélectionner tout - Visualiser dans une fenêtre à part setSize(largeur,hauteur);
En fait, Je suis tout à fait d'accord avec toi , mais ma question c'est que : Comment faire pour que les composants de l'application ( boutons, ....) ne changent pas de taille si la résolution a changée , Merci d'avance
Tout dépend de ton Layout.
Par exemple un JFrame a un BorderLayout par defaut et avec ce layout le contenu s'adapte à la taille de la fenetre.
Par contre un JPanel a un FlowLayout par default et avec ce layout le contenu garde sa taille initiale que tu peux (ou pas) préalablement spécifier avec setPreferredSize().
Voici 2 exemples l'un avec des JButton et l'autre avec des JPanels.
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 import javax.swing.*; import java.awt.*; public class TestAffichageButton extends JFrame { public TestAffichageButton () { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(new JButton("BorderLayout"),BorderLayout.NORTH); JPanel panel = new JPanel(); panel.add(new JButton("FlowLayout")); add(panel,BorderLayout.CENTER); pack(); setVisible(true); } public static void main (String[] args) { TestAffichageButton test = new TestAffichageButton(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import javax.swing.*; import java.awt.*; public class TestAffichagePanel extends JFrame { public TestAffichagePanel () { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel1 = new JPanel(); panel1.setPreferredSize(new Dimension(50,50)); panel1.setBackground(Color.blue); add(panel1,BorderLayout.NORTH); JPanel panel2 = new JPanel(); panel2.setPreferredSize(new Dimension(50,50)); //ici j'ai spécifié la taille panel2.setBackground(Color.red); JPanel panel3 = new JPanel(); panel3.add(panel2); add(panel3,BorderLayout.CENTER); pack(); setVisible(true); } public static void main (String[] args) { TestAffichagePanel test = new TestAffichagePanel(); } }
Partager