Как отобразить текст, который отображается в консоли, в моем TextArea? - PullRequest
0 голосов
/ 04 июня 2019

В рамках нашего второго семестрового проекта мы должны создать побег-игру на Java.

Нам удалось отобразить наш текст в консоли, однако мы не можем отобразить тот же текст в нашем окне (которое находится в другом классе).Мы знаем, что мы должны использовать setText (), поскольку это TextArea, но мы не знаем, как это сделать.


private JTextArea texte;

private JButton button;

private JProgressBar bar;

public IHM() {
        this.window = new JFrame("Esc'App Game");

        this.window.setContentPane(this.panelCreation());

        this.window.pack();
        this.window.setVisible(true);

    }

public JPanel panelCreation() {
        JPanel panel = new JPanel();

        this.texte = new JTextArea("Erreur affichage de texte");

        texte.setText(""); // <- here 

        panel.add(texte);
        texte.getText();

        this.window.add(panel);

        return panel;
    }

И наш главный:


// Ask for the pseudo
Player p1 = new Player();
System.out.println(p1.getPseudo());

// change System.out to setText() ?

// Ask for the theme
Player.getTheme();

// Creation of a new Theme
Theme t1 = new Theme(Player.myTheme);

на данный момент, у нас нет никакого результата или сообщения об ошибке, потому что у нас нет никакой идеи.

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Вы можете сделать что-то вроде этого:

public void println(String s) {
    try {
        int end = text.getDocument().getLength();
        text.getDocument().insertString(end, s + "\n", null);
    } catch (BadLocationException ex) {
        Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
    }
}

ОБНОВЛЕНИЕ

public void println(String s) {
    SwingUtilities.invokeLater(()-> {
        try {
            int end = text.getDocument().getLength();
            text.getDocument().insertString(end, s + "\n", null);
        } catch (BadLocationException ex) {
            Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex);
        }
    });
}
0 голосов
/ 04 июня 2019

Вы можете начать читать официальные учебные руководства по Oracle Текстовые компоненты Swing .

Там вы обнаружите, что JTextArea имеет методы setText() и getText(), например. И чтобы быть готовым сделать что-то действительно полезное, вы, вероятно, захотите изучить, как использовать модели для ваших компонентов.

...