如何在 JLabel 设置填充

2022-09-04 06:29:41

我想在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);

这是布局:

enter image description here

这是我应该看到的所有测试:“Il 31 Dicembre scadrà l'assistenza, ricorda di rinnovare l'assistenza per ricevere sempre assistenza ed aggiornamenti。


答案 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

答案 2

推荐