如何正确"layout"一个JLabel?
How to correctly "layout" a JLabel?
所以之前我创建了一个JFrame,并成功地在它的南边添加了一个JLabel。
当我意识到将 JLabel 添加到 JPanel 并将该 JPanel 添加到 JFrame 与将 JLabel 添加到 JFrame 的工作方式不同时,我已经开始使用 GUI 处理一个更大的项目。我是使用 java 图形进行编程的新手,不太确定 JPanel 和 JFrames 之间的所有区别。出于某种原因,在运行我在下面包含的代码时,标签仅保留在面板的顶部中心。
// tests adding a JLabel to a JPanel
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;
public class Test extends JFrame
{
public Test()
{
super("TestFrame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
// add JPanel with label to frame
JPanel panel = new JPanel();
JLabel label = new JLabel("Testing 123...");
panel.add(label, BorderLayout.SOUTH);
add(panel);
setVisible(true);
}
public static void main(String[] args)
{
// create a new Test
Test test = new Test();
}
}
我一直在研究寻找答案,但由于某种原因找不到任何东西。我也曾尝试在创建 JLabel 时使用 SwingConstants,但这会引发有关 horizontalAlignment 的 IllegalArgumentException。我也查过这个,但一无所获。
有人知道在 JPanel 中正确格式化 JLabel 的方法吗?
谢谢!
JPanel
默认使用 FlowLayout
。您需要将布局设置为 BorderLayout
才能使用其约束
JPanel panel = new JPanel(new BorderLayout());
您也可以使用此设置布局:
panel.setLayout(new BorderLayout());
如果您不确定您需要哪些方法,您可以简单地输入变量和一个点,然后等到您得到建议,您可以点击一次方法并获得 api这些信息可以帮助您解决此类问题。
或者您通过浏览器查看 api:click!
所以之前我创建了一个JFrame,并成功地在它的南边添加了一个JLabel。
当我意识到将 JLabel 添加到 JPanel 并将该 JPanel 添加到 JFrame 与将 JLabel 添加到 JFrame 的工作方式不同时,我已经开始使用 GUI 处理一个更大的项目。我是使用 java 图形进行编程的新手,不太确定 JPanel 和 JFrames 之间的所有区别。出于某种原因,在运行我在下面包含的代码时,标签仅保留在面板的顶部中心。
// tests adding a JLabel to a JPanel
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.BorderLayout;
public class Test extends JFrame
{
public Test()
{
super("TestFrame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 500);
// add JPanel with label to frame
JPanel panel = new JPanel();
JLabel label = new JLabel("Testing 123...");
panel.add(label, BorderLayout.SOUTH);
add(panel);
setVisible(true);
}
public static void main(String[] args)
{
// create a new Test
Test test = new Test();
}
}
我一直在研究寻找答案,但由于某种原因找不到任何东西。我也曾尝试在创建 JLabel 时使用 SwingConstants,但这会引发有关 horizontalAlignment 的 IllegalArgumentException。我也查过这个,但一无所获。
有人知道在 JPanel 中正确格式化 JLabel 的方法吗?
谢谢!
JPanel
默认使用 FlowLayout
。您需要将布局设置为 BorderLayout
才能使用其约束
JPanel panel = new JPanel(new BorderLayout());
您也可以使用此设置布局:
panel.setLayout(new BorderLayout());
如果您不确定您需要哪些方法,您可以简单地输入变量和一个点,然后等到您得到建议,您可以点击一次方法并获得 api这些信息可以帮助您解决此类问题。 或者您通过浏览器查看 api:click!