java - 如何在中间java中对齐按钮

标签 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);
        }
    }
}

最佳答案

您应该看看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);

关于java - 如何在中间java中对齐按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35537615/

相关文章:

java - 从 Vaadin 中的另一个 UI 刷新网格

java - 如何从我的应用程序中显示谷歌翻译弹出窗口?

java - ButterKnife onclick 不起作用

Java:尝试使用外部 .jar 库时 Eclipse 中出现 NoClassDefFoundError

java - 重画功能

java - 使用 Java Swing 和 JEditorPane 将标记的文本设为粗体

java - 错误 : Could not find or load main class . .. - Eclipse 之外的 Maven 项目

java - 在 GridBagLayout 中的组件之间放置空间

java初学者计算器不编译

java - 如何在特定时间间隔更新jlabel的字符串