У меня есть JScrollPane
с JTextArea
внутри, и я пытаюсь установить ориентацию JTextArea справа налево, чтобы текст внутри него начинался справа, а полоса прокрутки была слева
Я пробовал следующее, но они не влияли на направление ориентации:
txt.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
txt.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
txt.setAlignmentX(JTextArea.RIGHT_ALIGNMENT);
РЕДАКТИРОВАТЬ:
два ответа camickr & trashgod предоставили работухорошо, но не в моей программе, где я использую JTextArea в качестве объекта Message и передаю его в OptionPane.
EDIT2:
Я понял, что setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
не 'не работает, если я применю его к содержимому JOptionPane. Есть ли альтернативное решение этой проблемы?
Аналогично моему коду:
import java.awt.*;
import java.util.*;
import javax.swing.*;
public class TextArea extends JPanel
{
private JTextArea txt = new JTextArea();
public TextArea()
{
setLayout(new GridLayout());
txt.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
JScrollPane scroll = new JScrollPane(txt);
scroll.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
setPreferredSize(new Dimension(200,200));
this.add(scroll);
}
private void display()
{
Object[] options = {this};
JOptionPane pane = new JOptionPane();
int option = pane.showOptionDialog(null, null, "Title", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
}
public static void main(String[] args)
{
new TextArea().display();
}
}