Le problème vient du layout utilisé. Avec borderlayout, la largeur ou hauteur utilisée est proportionnelle à la fenêtre donc c'est très difficile de redimensionner des éléments (en général on rajoute un deuxième élément sur la même ligne pour les redimensionner mais c'est pas terrible).
Le mieux dans ton cas est d'utiliser l'absolute layout ou le group layout. Après pour bien utiliser ces layout je te conseille d'utiliser le plugin Windowbuilder sous éclipse ou l'interface graphique sous netbean et tu fais le positionnement des éléments en 2 minutes alors qu'en codant tout t'aurais passé 1 heures. Voilà par exemple le code de l'interface fait avec windowbuilder :
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.Color;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.SwingConstants;
public class WindowGame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
new WindowGame();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public WindowGame() {
initialize();
}
private void initialize() {
JFrame frame = new JFrame();
frame.setBackground(Color.LIGHT_GRAY);
frame.getContentPane().setBackground(Color.LIGHT_GRAY);
frame.setSize(363, 304);
frame.setTitle("Find the flag !");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(48, 71, 255, 50);
panel.setBackground(Color.LIGHT_GRAY);
frame.getContentPane().add(panel);
panel.setLayout(new BorderLayout(0, 0));
JLabel title = new JLabel("Find the Flag !");
title.setLocation(48, 11);
title.setBackground(Color.LIGHT_GRAY);
title.setFont(new Font("Bahnschrift", Font.PLAIN, 35));
title.setHorizontalAlignment(SwingConstants.CENTER);
title.setSize(new Dimension(255, 49));
frame.getContentPane().add(title);
JTextField txtPseudo = new JTextField("Pseudo");
txtPseudo.setBackground(Color.DARK_GRAY);
txtPseudo.setFont(new Font("Bahnschrift", Font.PLAIN, 25));
txtPseudo.setForeground(Color.WHITE);
txtPseudo.setHorizontalAlignment(SwingConstants.CENTER);
txtPseudo.setToolTipText("Entre ici ton pseudo");
txtPseudo.setPreferredSize(new Dimension(15,50));
txtPseudo.setColumns(10);
panel.add(txtPseudo, BorderLayout.NORTH);
JButton btnQuitter = new JButton("Quitter...");
btnQuitter.setBounds(48, 193, 255, 50);
btnQuitter.setForeground(Color.WHITE);
btnQuitter.setBackground(Color.DARK_GRAY);
btnQuitter.setFont(new Font("Bahnschrift", Font.PLAIN, 25));
btnQuitter.setToolTipText("Clique ici pour quitter");
frame.getContentPane().add(btnQuitter);
JButton btnJouer = new JButton("Jouer");
btnJouer.setBounds(48, 132, 255, 50);
frame.getContentPane().add(btnJouer);
btnJouer.setBackground(Color.DARK_GRAY);
btnJouer.setFont(new Font("Bahnschrift", Font.PLAIN, 25));
btnJouer.setForeground(Color.WHITE);
btnJouer.setToolTipText("Clique pour jouer !");
}
}
ps: pour redimensionner les éléments il faut modifier les valeur de setBounds comme ceci :
setBounds(int x, int y, int width, int height)
- Edité par Nemo404 25 mai 2019 à 10:34:22
Redimensionnement components
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.