Центрирование JMenuItem в JPopupMenu - PullRequest
0 голосов
/ 10 июня 2019

Что я хочу сделать, это центрировать элементы JMenuItem внутри JPopupMenu. Вот как они сейчас выглядят image

Я бы хотел, чтобы они были в центре, а не слева.

Вот некоторые части моего кода

    JButton lvlBtn = new JButton("Level"); //For the button
    JPopupMenu pmenu = new JPopupMenu();
    JMenuItem easyMenuItem = new JMenuItem("Easy");
    JMenuItem mediumMenuItem = new JMenuItem("Medium");
    JMenuItem hardMenuItem = new JMenuItem("Hard");

    lvlBtn.setBounds(750, 20, 280, 50); //Setting a location for the button

    //Making an ActionListener for the button
    ActionListener btnAction=new ActionListener(){
            public void actionPerformed(ActionEvent ae)
            {
                //This will make the popup menu appear


                Component b=(Component)ae.getSource();

               // Taking the location of the button on the screen
               Point p=b.getLocationOnScreen();

               // this - current frame
               // 0,0 where the popup will initially appear
               pmenu.show(this,0,0);

               // Changing the location of the JPopupMenu and placing it
               // below the lvlBtn
               pmenu.setLocation(p.x,p.y+b.getHeight());
            }
        };
    lvlBtn.addActionListener(btnAction);

    //Setting a size for each JMenuItem
    easyMenuItem.setPreferredSize(new Dimension(280, 20));
    mediumMenuItem.setPreferredSize(new Dimension(280, 20));
    hardMenuItem.setPreferredSize(new Dimension(280, 20));


    //Adding menu items in popup menu
    pmenu.add(easyMenuItem);
    pmenu.add(mediumMenuItem);
    pmenu.add(hardMenuItem);

1 Ответ

2 голосов
/ 10 июня 2019

Чтение JMenuItem API.

JMenuItem простирается от AbstractButton.

AbstractButton - это базовый класс для таких компонентов Swing, как JButton, JCheckBox, JMenuItem. Как таковой, он предоставляет методы для настройки отображения текста, значка и т. Д.

Начать с:

setHorizontalAlignment(...)

Но посмотрите и другие методы, доступные для дальнейшего использования.

...