вставить разрыв строки в Java

У меня проблема с переносом строки, я сделал такой код

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class Welcome extends JFrame {
    JMenu menuAdd, menuShow, menuEdit, menuHelp;
    JMenuItem addCar, addRent, addUser, editCar, editCostumer, editUser, showCar, showRent, helpAbout;
    JLabel lblWelcome;
    JMenuBar mb;

public Welcome() {
    setTitle("Car Tooner");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(400,400);
    setLocationRelativeTo(null);
    setResizable(false);

    menuAdd = new JMenu("Add");
    menuShow = new JMenu("Show");
    menuEdit = new JMenu("Edit");
    menuHelp = new JMenu("Help");

    addCar = new JMenuItem("Car");
    addRent = new JMenuItem("Rent");
    addUser = new JMenuItem("User");
    editCar = new JMenuItem("Car");
    editCostumer = new JMenuItem("Costumer");
    editUser = new JMenuItem("User");
    showCar = new JMenuItem("Car");
    showRent = new JMenuItem("Rent");
    helpAbout = new JMenuItem("About");

    mb = new JMenuBar();

    lblWelcome = new JLabel("Welcome, Admin \nto Car Tooner", SwingConstants.CENTER);

    setJMenuBar(mb);
    mb.add(menuAdd);
    mb.add(menuEdit);
    mb.add(menuShow);
    mb.add(menuHelp);

    menuAdd.add(addCar);
    menuAdd.add(addRent);
    menuAdd.add(addUser);
    menuEdit.add(editCar);
    menuEdit.add(editCostumer);
    menuEdit.add(editUser);
    menuShow.add(showCar);
    menuShow.add(showRent);
    menuHelp.add(helpAbout);


    add(lblWelcome);

}

public static void main(String[] args) {
    Welcome wlc = new Welcome();
    wlc.setVisible(true);
}

}

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

lblWelcome = new JLabel("Welcome, Admin \nto Car Tooner", SwingConstants.CENTER);

Я хочу написать такой текст: «Добро пожаловать, администратор (\ n новая строка) в Car Tooner», может ли кто-нибудь мне помочь?


person Fahmi Jufri    schedule 20.12.2013    source источник
comment
парень, тебе действительно следовало воспользоваться поиском раньше ... [stackoverflow.com/questions/685521/multiline-text-in-jlabel] [1] [1]: stackoverflow.com/questions/685521/multiline-text-in-jlabel   -  person Honza Zidek    schedule 20.12.2013
comment
В соответствующей заметке избегайте использования системно-зависимых разделителей новой строки и используйте вместо них System.getProperty("line.separator");   -  person Toni Toni Chopper    schedule 20.12.2013
comment
парень, тебе действительно следовало бы предварительно выполнить поиск: [stackoverflow.com/questions/685521/multiline-text-in-jlabel] [1] [1]: stackoverflow.com/questions/685521/multiline-text-in-jlabel   -  person Honza Zidek    schedule 20.12.2013


Ответы (4)


Для этого вы можете встроить HTML. я хотел бы использовать

lblWelcome = new JLabel("<html>Welcome, Admin <br/>to Car Tooner", SwingConstants.CENTER);
person Elliott Frisch    schedule 20.12.2013

Я хочу написать такой текст: «Добро пожаловать, администратор (\ n новая строка) в Car Tooner», может ли кто-нибудь мне помочь?

person mKorbel    schedule 20.12.2013

Обведите строку <html></html> и разорвите строки <br>.

JLabel l = new JLabel("<html>Welcome admin <br>to car Toner</html>", SwingConstants.CENTER);

также см. здесь для расширенного обсуждения

Новая строка в JLabel

person gaurav5430    schedule 20.12.2013

public static final String NL = System.getProperty("line.separator");  

Вам нужно получить разделитель строк, чтобы он работал кросс-платформенным, поскольку \ n не всегда работает. \ r \ n - это правильный способ сделать это, например, в Windows. Просто запишите строку line.separator в переменную и добавляйте ее в любое время, когда она вам понадобится. Вот почему static полезен, поскольку он будет постоянным во всех экземплярах класса.

Чтобы встроить его:

lblWelcome = new JLabel("Welcome, Admin" + NL + "to Car Tooner", SwingConstants.CENTER);
person Adam Short    schedule 20.12.2013