J'ai un exemple de code:setSize ne pas influencer la taille du bouton
import java.awt.*;
import javax.swing.*;
import javax.swing.border.BevelBorder;
public class AWT extends JFrame {
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setPreferredSize(new Dimension(600, 450));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBackground(Color.green.darker());
Button btn_1 = new Button("Button 1");
btn_1.setBackground(Color.green.darker());
btn_1.setSize(40, 100);
Button btn_2 = new Button("Button 2");
btn_2.setBackground(Color.green.darker());
btn_2.setSize(40, 100);
Button btn_3 = new Button("Button 3");
btn_3.setBackground(Color.green.darker());
btn_3.setSize(40, 100);
JPanel players = new JPanel(new GridLayout(1, 3));
players.add(btn_1);
players.add(btn_2);
players.add(btn_3);
players.setBackground(Color.green.darker());
players.setPreferredSize(new Dimension(450, 80));
JPanel game = new JPanel();
game.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
game.setBackground(Color.green);
game.setPreferredSize(new Dimension(600, 370));
JPanel content = new JPanel();
content.setLayout(new BorderLayout());
frame.setContentPane(content);
content.add(players, BorderLayout.NORTH);
content.add(game, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
}
Cette suite me donne une telle fenêtre:
alt text http://img710.imageshack.us/img710/1573/21672037.gif
, alors qu'il devrait se traduire par quelque chose comme ceci:
alt text http://img686.imageshack.us/img686/8948/44650673.gif
Pourquoi ce n'est pas rendu de cette façon? Ignore la taille préférée des boutons.
c'est une bonne solution aussi bien pour la mise en page. si setPreferredSize fait la partie taille de la magie. –
@BalintPato: Bon point; plus [ici] (http://stackoverflow.com/q/7229226/230513). – trashgod