centrer un JPanel dans une frame
Bonjour,
Tout est dans le titre :D j'essaye de centrer mon JPanel global dans ma JFrame, pour centrer ma carte sans l'etirer! car j'ai essayé le BorderLayout mais en center il prend toute la place... J'ai essayé le BoxLayout mais sans resultat :cry:
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
public class PrintCoeur {
public static void main(String[] args) {
JFrame frame = new JFrame("Coeur");
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
final JMenu menu = new JMenu("cards");
menuBar.add(menu);
frame.setJMenuBar(menuBar);
final JPanel panel = new JPanel(new GridBagLayout());
panel.setPreferredSize(new Dimension(100, 140));
panel.setBackground(Color.white);
panel.setOpaque(true);
panel.setBorder(BorderFactory.createLineBorder(Color.black, 2));
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx=0.5;
gbc.weighty=0.5;
gbc.insets = new Insets(5,5,0,5);
gbc.anchor = GridBagConstraints.NORTHWEST;
panel.add(createCoeur("\u2665", 20), gbc);
gbc.anchor = GridBagConstraints.NORTHEAST;
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(createCoeur("\u2665", 20), gbc);
gbc.anchor = GridBagConstraints.CENTER;
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(createCoeur("As", 30), gbc);
gbc.anchor = GridBagConstraints.SOUTHWEST;
gbc.gridwidth = 1;
panel.add(createCoeur("\u2665", 20), gbc);
gbc.anchor = GridBagConstraints.SOUTHEAST;
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel.add(createCoeur("\u2665", 20), gbc);
panel.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
JMenuItem menuItem = new JMenuItem("Cards");
menu.add(menuItem);
}
public void mouseEntered(MouseEvent e) {
panel.setBackground(Color.cyan);
}
public void mouseExited(MouseEvent e) {
panel.setBackground(Color.white);
}
public void mousePressed(MouseEvent e) {
// panel.setBackground(Color.white);
}
public void mouseReleased(MouseEvent e) {
}
});
JPanel global = new JPanel();
global.add(panel);
global.setBackground(Color.green);
global.setOpaque(true);
frame.getContentPane().add(global);
frame.setVisible(true);
}
public static Component createCoeur(String text, Integer size) {
JLabel coeur = new JLabel(text);
coeur.setForeground(Color.red);
coeur.setFont(new Font(coeur.getFont().getFontName(),0,size));
return coeur;
}
} |
Merci pour votre aide