我不知道如何在按钮之间放置距离

时间:2017-02-15 18:21:09

标签: java

我想在按钮之间放置空格:

https://i.stack.imgur.com/XJMB8.png

我想把按钮放在中间,一个在另一个下方,它们之间的距离很远,如果我的代码很乱我道歉,我想做一些更复杂的事情,它只是一个原型,加上你不知道如此Java GUI如此受到批评

第一课:

import javax.swing.*;

public class first {

    public static void main(String[] args) {

        second ob = new second();
        ob.setLocation(500, 100);
        ob.setSize(500, 500);
        ob.setVisible(true);
        ob.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}

第二类:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import java.util.Formatter;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.text.Position;
import java.util.*;


public class second extends JFrame {
    int i;
    private JPanel pan1;
    private JPanel pan2;
    private JScrollPane scroll;
    private JTextArea tx;
    private JButton[] buton = new JButton[50];
    private Box box = new Box(BoxLayout.Y_AXIS);

    second() {

        pan1 = new JPanel();
        pan1.setBackground(Color.GREEN);
        pan1.setLocation(0, 0);
        pan1.setPreferredSize(new Dimension(500, 100));

        add(pan1, BorderLayout.NORTH);



        for (int i = 0; i < 50; i++) {

            buton[i]=new JButton("Button "+i);
            box.add(buton[i]);
        }

        JScrollPane sp = new JScrollPane(box);

        Dimension d = new Dimension(box.getComponent(0).getPreferredSize());

        sp.getVerticalScrollBar().setUnitIncrement(d.height);

        d.height *= 10; // Show at least 10 buttons

        sp.getViewport().setPreferredSize(d);
        add(sp);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);


    }
}

1 个答案:

答案 0 :(得分:2)

  

一个在另一个之下,它们之间的距离

阅读How to Use BoxLayout上的Swing教程中的部分。您可以在每个按钮之间添加verticalStrut(...)您可以使用Box.CreateVerticalStrut(...)方法。

另一种方法可能是使用GridLayout。创建布局时,可以在网格中指定垂直间隙。注意:使用这种方法,所有按钮的大小都相同,并且将填充可用空间,在这种情况下,您可能需要将面板与GridLayout嵌套在另一个面板中,以便按钮以合理的宽度显示。

类名应该以大写字母开头。查看JDK API中的所有类。请注意它们都是以大写字母开头的。