如何在 JLabel 中设置填充
Posted
技术标签:
【中文标题】如何在 JLabel 中设置填充【英文标题】:How to set padding at JLabel 【发布时间】:2016-01-15 07:53:58 【问题描述】:我想在 JPanel 中显示多行 JLabel。 所以我有这段代码,但我无法显示多行 JLabel。
public class NotificationFrame extends JFrame
public NotificationFrame()
JPanel panelBody = new JPanel();
panelBody.setBackground(Color.white);
GridBagConstraints GBC2 = new GridBagConstraints();
Container CR2 = new Container();
GridBagLayout GBL2 = new GridBagLayout();
CR2.setLayout(GBL2);
panelBody.add(CR2);
GBC2 = new GridBagConstraints();
CR2.add(labelTesto);
GBC2.gridx=0;
GBC2.gridy=0;
GBC2.insets.left = 10;
GBC2.insets.top=0;
GBL2.setConstraints(labelTesto,GBC2);
panelBody.setLayout(new FlowLayout(FlowLayout.CENTER));
add(panelBody,BorderLayout.CENTER);
如果我更改了最后一行代码
add(labelTest,BorderLayout.CENTER);
我可以表明我想要。但这是不正确的,因为我想在 JLabel 上设置一个填充
编辑
我现在已经使用了这个代码:
JPanel panelBody = new JPanel();
panelBody.setBackground(Color.white);
SpringLayout layout = new SpringLayout();
panelBody.setLayout(layout);
panelBody.add(labelTesto);
layout.putConstraint(SpringLayout.NORTH, labelTesto, 15, SpringLayout.NORTH, panelBody);
add(panelBody,BorderLayout.CENTER);
这是布局:
这是我应该看到的所有测试: “Il 31 Dicembre scadrà l'assistenza, ricorda di rinnovare l'assistenza per ricevere semper assistantenza ed aggiornamenti。”
【问题讨论】:
为了获得最佳帮助:发布一张您想要的和您正在获得的图片,然后创建并发布minimal reproducible example。 我以前从未在代码中见过new Container()
。建议你改成new JPanel()
。
“我想在 JLabel 上设置填充” 在标签上添加 EmptyBorder
。但是,如果有比该评论更好的事情的机会,请遵循@HovercraftFullOfEels 的明智建议..
变量名不应以大写字符开头。发布代码时遵循 Java 约定。
【参考方案1】:
多行它不是填充。要在 JLabel 或 JButton 中实现多行文本,您需要使用 html。
要换行(或多行):
btn.setText("<html><p>Il 31 Dicembre scadrà l'assistenza, ricorda di rinnovare l'assistenza per ricevere sempre assistenza ed aggiornamenti</p></html>");
label.setText("<html>Date:<br></html>"+getDateFromSomeWhere);
设置内边距:
label.setBorder(new EmptyBorder(0,10,0,0));//top,left,bottom,right
【讨论】:
成功了,现在我想给一些带圆角的边框,我们该怎么做 互联网上有很多例子。 This is one of them.以上是关于如何在 JLabel 中设置填充的主要内容,如果未能解决你的问题,请参考以下文章