Java 按钮宽度

标签 java swing button size width

我试过 use this而且它不起作用

singleplayerButton.setBounds(20, 20, 200, 100);

我不知道为什么,有人可以帮我解决这个问题吗?

我的整页代码是here

package gmine;

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

public class gmine implements ActionListener {
        JFrame interfaceFrame;
        JButton singleplayerButton, multiplayerButton, optionsButton, quitButton;

        public gmine() {
                JFrame.setDefaultLookAndFeelDecorated(false);
                interfaceFrame = new JFrame("G-Mine B0.4");
                interfaceFrame.setSize(800,600);
                interfaceFrame.setLayout(new GridLayout(9,1, 20, 15));

                singleplayerButton = new JButton("SinglePLayer");
                singleplayerButton.addActionListener(this);
                interfaceFrame.add(singleplayerButton);
                singleplayerButton.setBounds(20, 20, 200, 100);

                multiplayerButton = new JButton("MultiPlayer");
                multiplayerButton.addActionListener(this);
                interfaceFrame.add(multiplayerButton);

                optionsButton = new JButton("Options");
                optionsButton.addActionListener(this);
                interfaceFrame.add(optionsButton);

                quitButton = new JButton("Quit");
                quitButton.addActionListener(this);
                interfaceFrame.add(quitButton);

                interfaceFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                interfaceFrame.setVisible(true);
        }

        public void actionPerformed(ActionEvent a) {

        }

        public static void main(String[] args) {
                new gmine();
        }
}

我正在努力使按钮变小,这样就不会触及页面的侧面。

最佳答案

我个人会使用布局管理器,它可以让您更灵活地决定按钮的布局方式,并努力满足您的组件首选尺寸,但您可以自由地根据需要进行调整。 .

对我来说,这就是 GridBagLayout

enter image description here

public class ButtonsLayout {

    public static void main(String[] args) {
        new ButtonsLayout();
    }

    public ButtonsLayout() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException ex) {
                } catch (InstantiationException ex) {
                } catch (IllegalAccessException ex) {
                } catch (UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Test");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new MenuPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class MenuPane extends JPanel {

        public MenuPane() {
            setLayout(new GridBagLayout());

            JButton singleplayerButton = new JButton("SinglePLayer");
            JButton multiplayerButton = new JButton("MultiPlayer");
            JButton optionsButton = new JButton("Options");
            JButton quitButton = new JButton("Quit");

            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.fill = GridBagConstraints.HORIZONTAL;
            gbc.ipadx = 20;
            gbc.ipady = 20;

            add(singleplayerButton, gbc);
            gbc.gridy++;
            add(multiplayerButton, gbc);
            gbc.gridy++;
            add(optionsButton, gbc);
            gbc.gridy++;
            add(quitButton, gbc);
        }
    }
}

这里,我使用GridBagConstraintsipadxipady通过布局管理器来增加组件的宽度和高度,以及使用 HORIZONTAL 填充使所有组件的宽度相同。

看看

更多信息

关于Java 按钮宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13136701/

相关文章:

Java 软件看起来一半是 Windows,一半是 Metal

java - (多图)动画Java

ios - 应用渐变时按钮拉伸(stretch)

java - 如何从 Java 调用具体的 Scala 特征方法?

java - 如何在 Java 中计算字符串矩阵的乘积?

java - 显示 JTable 中列表的下一行

javascript - 功能链接按钮的代码无效?

javascript - 如何在单击按钮时删除表格行

java - 高性能且线程安全的初始化 block

java - 如何从 NetBeans 运行所有 JUnit 测试用例?