我想在按钮之间放置空格:
我想把按钮放在中间,一个在另一个下方,它们之间的距离很远,如果我的代码很乱我道歉,我想做一些更复杂的事情,它只是一个原型,加上你不知道如此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);
}
}
答案 0 :(得分:2)
一个在另一个之下,它们之间的距离
阅读How to Use BoxLayout上的Swing教程中的部分。您可以在每个按钮之间添加verticalStrut(...)
您可以使用Box.CreateVerticalStrut(...)
方法。
另一种方法可能是使用GridLayout
。创建布局时,可以在网格中指定垂直间隙。注意:使用这种方法,所有按钮的大小都相同,并且将填充可用空间,在这种情况下,您可能需要将面板与GridLayout嵌套在另一个面板中,以便按钮以合理的宽度显示。
类名应该以大写字母开头。查看JDK API中的所有类。请注意它们都是以大写字母开头的。