Разделение области JText на две части - PullRequest
0 голосов
/ 03 мая 2018

Я сейчас программирую программу обмена сообщениями на Java. У меня есть поле, в которое я ввожу свое сообщение, и еще одно поле, в котором оно появляется после того, как я его отправил и получил ответ. Второе поле - это область JText, и мне было интересно, как сделать так, чтобы мое сообщение отображалось в правой части окна, а ответ - в левой (например, iMessage). Я не могу найти, как правильно расположить строки в jTextArea.

1 Ответ

0 голосов
/ 03 мая 2018

Вместо использования JTextArea, попробуйте использовать JTextPane, как показано ниже.

JTextPane textPane = new JTextPane();
frame.getContentPane().add(textPane, BorderLayout.CENTER);
textPane.setContentType("text/html");
textPane.setEditable(false);

После создания JTextPane добавьте стили, как показано ниже.

StyledDocument doc=textPane.getStyledDocument();
SimpleAttributeSet right =new SimpleAttributeSet();
SimpleAttributeSet left =new SimpleAttributeSet();

StyleConstants.setAlignment(right, StyleConstants.ALIGN_RIGHT);
StyleConstants.setAlignment(left, StyleConstants.ALIGN_LEFT);

Теперь добавьте тексты к JTextPane

   try {

        doc.insertString(0, "First Line aligned left\n", left);
        doc.insertString(doc.getLength(), "Second line Aligned right\n", right);

    } catch (Exception e) {
        e.printStackTrace();
    }

Вы получите результат, как показано ниже.

enter image description here

Надеюсь, вы получили ответ, который хотите.

...