gpt4 book ai didi

Java:JPanel 中的垂直对齐

转载 作者:太空狗 更新时间:2023-10-29 22:37:49 27 4
gpt4 key购买 nike

我试图在一个 JPanel 中垂直对齐(居中)两个 JLabel。

JPanel panel = new JPanel();
panel.setPreferredSize(size);
JLabel label1 = new JLabel(icon);
JLabel label2 = new JLabel("text");
panel.add(label1);
panel.add(label2);

我尝试使用 setAligmentY() 但没有成功。这两个标签始终出现在 JPanel 的顶部。

UPD:标签应该像使用 FlowLayout 一样并排放置,但在 JPanel 的中间。

最佳答案

使用 GridBagLayout使用默认约束。这是一个小的演示代码:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class TestVerticalAlignement {

protected void initUI() {
final JFrame frame = new JFrame();
frame.setTitle("Test vertical alignement");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
JLabel label1 = new JLabel("label1");
JLabel label2 = new JLabel("label2");
panel.add(label1, gbc);
panel.add(label2, gbc);
frame.add(panel);
frame.setSize(300, 300);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestVerticalAlignement().initUI();
}
});
}

}

关于Java:JPanel 中的垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357720/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com