如何在java中间对齐按钮

时间:2016-02-21 14:53:06

标签: java swing

我是Java的初学者,但不知何故有一些知识,但仍然超越。我想问一下,如何在我刚创建的主菜单中对齐按钮。按钮以某种方式水平对齐。

这是我的代码:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;



class mainmenu extends JFrame 
{


    JButton b1;
    JLabel l1;
    JButton b2;

    public mainmenu() {


        setResizable(false);    
        setLocation(100, 100);
        setSize(500, 500);
        setVisible(true);

        setLayout(new BorderLayout());

        JLabel background=new JLabel(new ImageIcon("C:\\Users\\Master Boat\\Desktop\\PH\\BG HOROR.png"));

        add(background);

        background.setLayout(new FlowLayout());

        l1=new JLabel("Here is a button");
        b1=new JButton("I am a button");
        b2=new JButton(" EXIT! ");
        b1.addActionListener(new btnFunc());


        background.add(l1);
        background.add(b1);
        background.add(b2);
    }

    public void armaged() {
        add(new gamesamplingbeta());

    }

    public static void main(String args[]) 
    {
        new mainmenu();
    }
    public class btnFunc implements ActionListener {

        public void actionPerformed (ActionEvent e) {


        }   


    }

    public class btnFunc2 implements ActionListener {

        public void actionPerformed2 (ActionEvent e) {

            System.exit(1);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您应该查看Swing Layouts一大堆不同的布局管理器,它们允许您以多种不同的方式定位组件。

如果您希望按钮垂直居中,我认为您应该使用的问题是Box Layout

这是一个例子。

import javax.swing.*;
import java.awt.*;

public class MainFrame
{
    JFrame mainFrame = new JFrame("Main Frame");
    JPanel mainPanel = new JPanel();
    JLabel label1 = new JLabel("Vertical Buttons");
    JButton button1 = new JButton("Button 1");
    JButton button2 = new JButton("Button 2");

    public MainFrame()
    {
        label1.setAlignmentX(Component.CENTER_ALIGNMENT);
        button1.setAlignmentX(Component.CENTER_ALIGNMENT);
        button2.setAlignmentX(Component.CENTER_ALIGNMENT);

        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
        mainPanel.add(label1);
        mainPanel.add(button1);
        mainPanel.add(button2);
        mainFrame.add(mainPanel);
        mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        mainFrame.setLocationRelativeTo(null);
        mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        mainFrame.pack();
        mainFrame.setVisible(true);
    }

    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(MainFrame::new);
    }
}

如果您想在任何组件之间添加间距,请使用Rigid Area之类的

container.add(component);
container.add(Box.createRigidArea(new Dimension(100, 100));
container.add(component1);