символ новой строки в JLabel.setText () - PullRequest
3 голосов
/ 05 октября 2011

Как я могу вставить новую строку, когда я использую JLabel.setText ()?Я пытался использовать Html, но может показаться, что он работает для setText, только для первоначального объявления jLabel

способ сделать это при первоначальном объявлении jlabel:

label = new JLabel("<html>Hello World!<br>blahblahblah</html>");

мой код:

textString += "<html> quantityTextField.getText() +
   theInventory.findItem(UPCTextField.getText()).toString() + <br> </html>";

purchaseInfo.setText( textString);

отображает HTML-теги и имена методов вместо строки, возвращаемой методами

Ответы [ 6 ]

5 голосов
/ 05 октября 2011

Если ваш setText() вызов изменяет предпочтительные размеры JLabel, то вам нужно вызвать revalidate() для контейнера, чтобы переделать макет.

Просмотр фрагмента кода, который вы использовалиКроме того, я вижу
в самом конце строки - который на самом деле ничего не будет делать - и множество ошибочных вызовов методов, которые выполняются так, что имена методов являются частью HTML.Если вы делаете что-то вроде

label.setText("<html>Hello World!<br>blahblahblah</html>");
label.getParent().revalidate();

, ваша новая строка должна появиться.

4 голосов
/ 05 октября 2011

Форматирование вашего текста все неправильно. Это строка, которую вы сейчас устанавливаете:

"<html>Hello World!<br>blahblahblah</html><html> quantityTextField.getText()+ theInventory.findItem(UPCTextField.getText()).toString() + <br> </html>"

Теперь скажите мне, что проблема не до боли очевидна (кстати, HTML - не единственная ваша проблема) ... В любом случае, для получения дополнительной информации см. Как использовать HTML в компонентах Swing .

2 голосов
/ 05 октября 2011
textString+="<html> " + quantityTextField.getText()+ theInventory.findItem(UPCTextField.getText()).toString() + "<br> </html>";

смешно.

0 голосов
/ 07 августа 2014

Любой, кто не проверяет свой ответ, должен квалифицировать его как «Я думаю».

Как уже говорили другие, \ n не будет работать, .revalidate () не нужен, и html - это.См. Новая строка в JLabel

0 голосов
/ 07 октября 2011

По личному опыту я бы не использовал HTML-теги в JLabel. Если вы не выполняете никакого форматирования (как, кажется, нет, кроме вставки разрыва строки), вам лучше использовать коды символов, такие как \ n, из-за простоты и размера.

[код] label = new JLabel («Привет, мир! \ nblahblahblah»);

textString + = amountTextField.getText () + theInventory.findItem (UPCTextField.getText ()). toString () + "\ n";

purchaseInfo.setText (textString); [/ Код]

Причина, по которой имена методов показывались, была в том, что вы заключили их в кавычки. Методы воспринимались как реальный текст для записи на экран, а не как набор инструкций для выполнения.

0 голосов
/ 05 октября 2011

Вы, кажется, что-то объединяете со своей строкой html.

Обведите текст в теги <html> и используйте теги <html> только один раз.

...