我使用CardLayout
创建了2个面板。左侧的主机JButtons
,点击后会在右侧面板中打开相应的网站。问题是我无法将按钮放在另一个上面。
请注意以下屏幕截图: -
答案 0 :(得分:9)
“问题是我无法一个接一个地放置按钮。”
您可以使用Box
垂直设置
JButton jbt1 = new JButton("Button1");
JButton jbt2 = new JButton("Button2");
JButton jbt3 = new JButton("Button3");
JButton jbt4 = new JButton("Button4");
public BoxTest(){
Box box = Box.createVerticalBox(); // vertical box
box.add(jbt1);
box.add(jbt2);
box.add(jbt3);
box.add(jbt4);
add(box);
}
运行此示例以查看
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class BoxTest extends JPanel{
JButton jbt1 = new JButton("Button1");
JButton jbt2 = new JButton("Button2");
JButton jbt3 = new JButton("Button3");
JButton jbt4 = new JButton("Button4");
public BoxTest(){
Box box = Box.createVerticalBox();
box.add(jbt1);
box.add(jbt2);
box.add(jbt3);
box.add(jbt4);
add(box);
}
public static void createAndShowGui(){
JFrame frame = new JFrame();
frame.add(new BoxTest());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndShowGui();
}
});
}
}
编辑:
“如果我想在按钮之间留下空隙怎么样?”
在组件之间使用createVerticleStrut()
之间添加空格
Box box = Box.createVerticalBox();
box.add(jbt1);
box.add(Box.createVerticalStrut(10)); <-- 10 being the space
box.add(jbt2);
box.add(Box.createVerticalStrut(10));
box.add(jbt3);
box.add(Box.createVerticalStrut(10));
box.add(jbt4);
box.add(Box.createVerticalStrut(10));