我想在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);
这是布局:
这是我应该看到的所有测试: “Il 31Dicembrescadràl'assistenza,ricorda di rinnovare l'assistenza per ricevere semper assistenza ed aggiornamenti。”
答案 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