jLabels自动换行

时间:2015-07-20 14:41:11

标签: java swing newline jlabel

我有一些工作正常的jlabels,但我需要它们是"粗体"。因此我使用html来引入强大的标签。现在我的文本是粗体但是当到达jlabel的末尾时它是换行符而不是截断它添加一些结束点,就像使用html之前一样。 jlabels的最小,最大和首选大小设置为[80,14]并且它们不可调整大小。这里有一些代码:

 public PanelArchivio(Lavoro lavoro) {
    //Nimbus ha un bug che riguarda il colore di sfondo dei textpanel e altri pannelli di testo
    //Creo il colore e lo metto di default al background dei textpane
    Color bgColor = new Color(255, 255, 153);
    UIDefaults defaults = new UIDefaults();
    defaults.put("TextPane[Enabled].backgroundPainter", bgColor);
    initComponents();
    this.lavoro = lavoro;
    jLabel_Cod.setText("<html><strong>"+this.lavoro.getCodice()+"</strong></html>");
    jLabel_DataCons.setText("<html><strong>"+Integer.toString(this.lavoro.getDataCons().getDate())+"/"+Integer.toString(this.lavoro.getDataCons().getMonth())+"/"+Integer.toString(this.lavoro.getDataCons().getYear())+"</strong></html>");

    if(this.lavoro.getOp1().equals(""))
        jLabel_Op1.setText("");
    else
        jLabel_Op1.setText("<html><strong>"+this.lavoro.getOp1()+"</strong></html>");
    if(this.lavoro.getOp2().equals(""))
        jLabel_Op2.setText("");
    else
        jLabel_Op2.setText(this.lavoro.getOp3());
    if(this.lavoro.getOp3().equals(""))
        jLabel_Op3.setText("");
    else
        jLabel_Op3.setText("<html><strong>"+this.lavoro.getOp3()+"</strong></html>");

    jTextArea_Note.setText(this.lavoro.getNote());
    jTextArea_Note.setLineWrap(true);
    jTextArea_Note.setCaretPosition(0);

    String ThumbnailPath = "C:/DecoLedisApp/Media/Disegni/Thumbnails/"+this.lavoro.getCodice()+".png";
    //Se il percorso è corretto setto il Thumbnail, altrimenti setto un immagine di default
    try {
        File f = new File(ThumbnailPath);
        if (f.exists() && !f.isDirectory()) {
            //Faccio un flush dell'immagine caricata, evitando che java
            //utilizzi l'immagine in cache senza ricaricare il file
            ImageIcon FlushedIcon = new ImageIcon(ThumbnailPath);
            FlushedIcon.getImage().flush();
            jLabel_Thumbnail.setIcon(FlushedIcon);
        } else {
            jLabel_Thumbnail.setIcon(new ImageIcon(PanelModOperatore.class.getResource("/Images/EmptyThumbnail.png")));
        }
    } catch (NullPointerException e) {
        jLabel_Thumbnail.setIcon(new ImageIcon(PanelModOperatore.class.getResource("/Images/EmptyThumbnail.png")));
    }

}

如您所见,第2行和第3行具有相同的文本集,但粗体的行是换行符。 怎么避免这个?

enter image description here

1 个答案:

答案 0 :(得分:1)

为什么不使用粗体?而不是乱用HTML?

   Font f = myLabel.getFont();
   myLabel.setFont( new Font( f.getName(), Font.BOLD, f.getSize() ) );