java - 在面板中设置标签布局

标签 java swing jpanel jlabel layout-manager

在我的框架中,我通过面板中的 for 来添加标签。我无法解决的问题是它在同一行上添加标签,而我想在一个和另一个之间添加一个\n 以便生成一列!我不知道该怎么做。有什么帮助吗?谢谢!

最佳答案

我认为关键是保存 JLabels 的容器的布局。如果您为该容器提供正确的布局,例如沿 PAGE_AXIS 定向的 BoxLayout,或用于行数可变的一列的 GridLayout(0, 1),那么 JLabels 将在其顶部堆叠一个另一个。

例如,

import java.awt.GridLayout;
import javax.swing.*;

public class StackingLabels extends JPanel {
    public static final String[] TEXTS = { "Sunday", "Monday", "Tuesday",
            "Wednesday", "Thursday", "Friday", "Saturday" };

    public StackingLabels() {
        setLayout(new GridLayout(0, 1));
        for (String text : TEXTS) {
            add(new JLabel(text));
        }
    }

    private static void createAndShowGui() {
        StackingLabels mainPanel = new StackingLabels();

        JFrame frame = new JFrame("StackingLabels");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(mainPanel);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGui();
            }
        });
    }
}

另一个想法是使用 JList 来显示字符串而不是堆叠的 JLabels。

关于java - 在面板中设置标签布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32301389/

相关文章:

java - 提取具有透明背景的图像部分

java - 找不到主类,java错误

java - miglayout关于列的问题

Java Swing - JTabbedframe 左上角的位置面板

java - Eclipse Javadoc 后台覆盖默认值

java - flink - 集群不使用集群

java - 将 vector 从 Matlab 传递到 Scala 类

java - 在 Swing 中移动背景图像

java - Java Swing JPanel 可以保存一个字符串值吗?

java - 从线程框架上拆下面板