java - 如何在JPanel中设置左对齐JLabel

标签 java swing jpanel jlabel

我有一个 JPanel,我将其插入到 JFrame 中。 现在,我想在 JPanel 的左侧显示一个 JLabel。所以我有这个代码:

JPanel panelHeader = new JPanel();
panelHeader.setBackground(new Color(52,151,236));
panelHeader.setPreferredSize(new Dimension(300,25));

GridBagConstraints GBC = new GridBagConstraints();
Container CR = new Container();
GridBagLayout GBL = new GridBagLayout();
CR.setLayout(GBL);     
panelHeader.add(CR);

LabelFormat label = new LabelFormat("EasyManagement",new Font("Arial Narrow", Font.PLAIN, 16),Color.white);
GBC = new GridBagConstraints();
CR.add(label);
GBC.gridx=0;
GBC.gridy=0;
GBC.insets.left = 1;
GBC.insets.top=0;
GBC.fill = GridBagConstraints.BOTH;
GBC.anchor= GridBagConstraints.EAST;
GBL.setConstraints(label,GBC);

使用此代码,我无法在 JPanel 左侧显示 JLabel,但我在中间看到它。

如何修复它?

最佳答案

-您可能希望设置 JLabel 的 Horizo​​ntalAlignment 属性。一种方法是通过其构造函数。尝试:

JLabel label = new JLabel(lText, SwingConstants.LEFT);

这也可以通过预期的 setter 方法来完成:

label.setHorizontalAlignment(SwingConstants.LEFT);

-您还可以尝试对 JLabel JPanel 容器使用左对齐

myJPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); 

-最终方式:

您可以使用 FlowLayout.LEADING 将标签包装在 JPanel

JPanel wrapper = new JPanel(new FlowLayout(FlowLayout.LEADING,0, 0));
wrapper.add(Jlabel);
panel.add(wrapper);

enter image description here

<小时/>

还要记住遵循 Java 命名约定。变量以小写字母开头,使用驼峰式大小写:JlabeljLabel

关于java - 如何在JPanel中设置左对齐JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33171772/

相关文章:

jvm - 什么是共享对象文件?

java - log4j 重定向到 swing 中的桌面应用程序

java - 交换 JPanel 内容时闪烁

java - 对齐使用流程布局的两个面板上的组件

java - 这个 JPanel 代码好吗?单击按钮时不显示其他 JPanel

java - VIES 增值税验证 wsdl 无法通过 java 代码运行

java - 监视器锁的最低字节使用值是多少?

java - 无法设置 AndEngine

java - 线程中的异常 "AWT-EventQueue-0"java.lang.IndexOutOfBoundsException : Index: 0, 大小:0

java - 计算 Swing 中物体之间可能的路径(可能是无穷大)的策略?