Java - 如何在Swing中添加换行符

6

我正在给我的迷你游戏添加一个按钮,但是我不知道如何进行换行。 我希望在按钮和文本之间有一个空格,以下是代码:

JPanel panel1 = new JPanel();
JLabel label1 = new JLabel("Welcome to the Wall Game!");
JLabel label2 = new JLabel("Click the button to read the instructions!");
JLabel space = new JLabel("");
JButton button1 = new JButton("Start");
button1.setText("Start!");

label1.setFont(font1); 
panel1.add(label1); //adds in all the labels to panels
panel1.add(label2);
panel1.add(space);
panel1.add(button1);
this.add(panel1); //adds the panel

欢迎信息已在单独一行中显示,但由于某种原因按钮却放在旁边。请问有人知道如何解决吗?

顺便提一下,如果您还不知道,需要在开始时引入import javax.swing.*;。感谢任何知道的人。

1个回答

10

JPanel默认使用FlowLayout,显然满足不了您的需求。您可以使用GridBagLayout代替。

请查看在容器中布置组件如何使用GridBagLayout以获取更多详情。

类似于这样...

Welcome

JPanel panel1 = new JPanel();
JLabel label1 = new JLabel("Welcome to the Wall Game!");
JLabel label2 = new JLabel("Click the button to read the instructions!");
JButton button1 = new JButton("Start");
button1.setText("Start!");

Font font1 = label1.getFont().deriveFont(Font.BOLD, 24f);
label1.setFont(font1);

panel1.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
panel1.add(label1, gbc); //adds in all the labels to panels
panel1.add(label2, gbc);
gbc.insets = new Insets(30, 0, 0, 0);
panel1.add(button1, gbc);

例如


2
《LayoutManager的可视化指南》(http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)在寻找适合所需外观的LayoutManager方面特别有用。 - Code-Apprentice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接