如何在JLabel上设置填充

时间:2015-10-16 14:09:33

标签: java swing jpanel jlabel

我想在JPanel中显示Multiline 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 31Dicembrescadràl'assistenza,ricorda di rinnovare l'assistenza per ricevere semper assistenza ed aggiornamenti。”

1 个答案:

答案 0 :(得分:12)

Multiline它没有填充。要在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