Bonjour, j'utilise une JMenuBar affiché verticalement et je n'arrive pas a centrer horizontalement le texte des JMenu (ici VerticalMenu class etendu de JMenu) avec la methode setHorizontalAlignment
Voila le code utilisé
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 menuBar=new jMenuBar(); menuBar.setLayout(new BoxLayout(menuBar,BoxLayout.PAGE_AXIS)); menuBar.add(Box.createVerticalGlue()); menu1=new VerticalMenu("scxsxsxsxsxation"); menu1.setHorizontalAlignment(SwingConstants.CENTER); menuBar.add(menu1); menuBar.add(Box.createVerticalGlue()); menu2=new VerticalMenu("uxscxsxs"); menu2.setHorizontalAlignment(SwingConstants.CENTER); menuBar.add(menu2); menuBar.add(Box.createVerticalGlue()); menu3=new VerticalMenu("scxsxsxsxsxation"); menu3.setHorizontalAlignment(SwingConstants.CENTER); menuBar.add(menu3); menuBar.add(Box.createVerticalGlue()); menuBar.setBorder(BorderFactory.createLineBorder(Color.black)); this.getContentPane().add(menuBar,BorderLayout.LINE_START);
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 public class VerticalMenu extends JMenu{ VerticalMenu(String label){ super(label); this.setFont(getFont().deriveFont((float) 22.0)); JPopupMenu pm=getPopupMenu(); pm.setLayout(new BoxLayout(pm,BoxLayout.PAGE_AXIS)); } public Dimension getMinimumSize(){ return new Dimension(265,30); } public Dimension getPreferredSize(){ return new Dimension(265,140); } public Dimension getMaximumSize(){ return new Dimension(265,140); } public void setPopupMenuVisible(boolean b){ boolean isVisible=isPopupMenuVisible(); if(b!=isVisible){ if((b==true) && isShowing()){ int x=0; int y=0; Container parent=getParent(); if(parent instanceof JPopupMenu){ x=0; y=getHeight(); } else{ x=getWidth(); y=0; } getPopupMenu().show(this,x,y); } else{ getPopupMenu().setVisible(false); } } } }