2015-01-07 5 views
0

Я столкнулся с некоторой неожиданной проблемой с моим String в методе setText() от JLabel.JLabel новая строка не работает

Независимо от того, что я делаю, он просто не может заставить его установить новую строку при утверждении переменных.

, что я пытался до сих пор

Jabel l = new JLabel(); 
String string = new String(); 
string = var1+"\n"+var2; 
string = var1+"\r\n"+var2; 
string = var1+"<html><br/></html>"+var2; 

l.setText(string); 
+0

Рассмотрим обеспечение [работоспособный пример] (https://stackoverflow.com/help/mcve), который демонстрирует свой р РОБЛЕМА. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

+0

''
«+ var2» 'не имеет смысла ... – MadProgrammer

ответ

3

Вы можете использовать HTML в JLabel, как описано в online tutorial, и вы почти получили это право; текст, который вы хотите, чтобы обернуть должен быть заключен в пределах HTML-теги, как:

string = "<html>" + var1 + "<br/>" + var2 + "</html>"; 

хотя это может быть лучше использовать StringBuilder на самом деле построить строку.

1

Кажется, работает очень хорошо для меня ...

enter image description here

var1+"<html><br/></html>"+var2; не имеет никакого смысла, для того, чтобы JLabel знать, что он должен оказывать String следует начинать с <html> а остальное содержимое должно следовать с использованием стандартных HTML наценки ...

import java.awt.Color; 
import java.awt.EventQueue; 
import java.awt.GridBagLayout; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 
import javax.swing.border.LineBorder; 

public class Test1 { 

    public static void main(String[] args) { 
     new Test1(); 
    } 

    public Test1() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
        ex.printStackTrace(); 
       } 

       JFrame frame = new JFrame("Testing"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.add(new TestPane()); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 

    public class TestPane extends JPanel { 

     public TestPane() { 
      String someText = ""; 
      StringBuilder sb = new StringBuilder(128); 
      sb.append("<html><br>"). 
        append(someText).append("<br>"). 
        append(someText).append("</html>"); 

      JLabel label = new JLabel(); 
      label.setBorder(new LineBorder(Color.RED)); 
      label.setText(sb.toString()); 
      setLayout(new GridBagLayout()); 
      add(label); 
     } 

    } 

} 
Смежные вопросы