it-swarm.com.ru

Как добавить текст в JFrame?

Поэтому я проектирую JFrame с использованием Eclipse WindowBuilder. Этот конкретный кадр представляет собой сообщение об ошибке, в котором говорится, что пользователь предоставил неверные учетные данные. Я добавил кнопку для выхода из фрейма, и теперь мне нужно отобразить фактическое сообщение об ошибке «Указанные учетные данные недействительны. Пожалуйста, предоставьте действительные учетные данные».

Я провел некоторый поиск, и все говорят, что нужно использовать JLabel, но когда я создаю свой JLabel и ввожу в него текст, нет переноса слов или чего-либо еще, поэтому я не могу уместить метку внутри рамки. 

Какой простой способ просто отобразить сообщение в центре JFrame?

8
thaweatherman

Чтобы создать метку для текста:

JLabel label1 = new JLabel("Test");

Чтобы изменить текст в метке:

label1.setText("Label Text");

И, наконец, очистить этикетку:

label1.setText("");

И все, что вам нужно сделать, это разместить метку в макете или в любой используемой вами системе макетов, а затем просто добавить ее в JFrame ...

9
Bhavik Ambani

Вместо того, чтобы тратить время на разработку JFrame только для отображения сообщения об ошибке, вы можете использовать JOptionPane, который по умолчанию является модальным: 

import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "Your message goes here!","Message", JOptionPane.ERROR_MESSAGE);
    }
}

enter image description here

Постскриптум Прекратите использовать Windowbuilder, если вы хотите изучить Swing.

4
Branislav Lazic

когда я создаю свой JLabel и ввожу в него текст, нет переноса слов или чего-либо еще

Форматирование HTML можно использовать для переноса слов в любом компоненте Swing, который предлагает стилизованный текст. НАПРИМЕР. как показано в этот ответ .

3
Andrew Thompson

Вы можете добавить многострочную метку со следующим:

JLabel label = new JLabel("My label");

label.setText("<html>This is a<br>multline label!<br> Try it yourself!</html>");

Отсюда, просто добавьте метку к фрейму, используя метод add (), и все готово!

0
bohlmanc