Comment définir l'orientation de JTextArea de droite à gauche (à l'intérieur de JOptionPane)
J'ai JScrollPane
avec JTextArea
à l'intérieur et je suis en train de mettre le JTextArea de l'orientation de la droite vers la gauche donc le texte à l'intérieur, il va commencer à partir de la droite et la barre de défilement se trouvera sur la gauche
J'ai essayé ce qui suit, mais ils n'affectent pas le sens de l'orientation:
txt.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
txt.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
txt.setAlignmentX(JTextArea.RIGHT_ALIGNMENT);
EDIT:
les deux réponses camickr & trashgod fourni du bon travail, mais pas dans mon programme j'utilise mon JTextArea comme un objet de Message et de le transmettre à OptionPane.
EDIT2:
J'ai compris que setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
ne fonctionne pas si je l'applique sur le JOptionPane contenu .. est-il une solution à ce problème?
Similaire à mon code:
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();
}
}
Enfin, un SSCCE, qui doit être affiché à chaque question. Voir ma mise à jour.
OriginalL'auteur Eng.Fouad | 2011-06-25
Vous devez vous connecter pour publier un commentaire.
Le texte commence sur le côté droit, mais obtient toujours ajouter à la fin que vous tapez au lieu d'être inséré au début de la ligne.
Mise à jour:
Je ne sais pas pourquoi il ne fonctionne pas dans une option volet. Voici une solution simple:
Fonctionne très bien pour moi, postez votre SSCCE!
où puis-je voir mon SSCCE?
Dans le cas où vous ne savez toujours pas ce qu'est un SSCCE est lire la: sscce.org
Cela fonctionne aussi, mais pas dans mon programme, qui en passant le JTextArea à OptionPane comme Objet du Message
OriginalL'auteur camickr
Cela semble fonctionner.
Cela fonctionne très bien, mais je ne sais pas pourquoi il ne fonctionne pas dans mon programme :/ j'ai re-vérifier mon code
Et c'est pourquoi vous où demandé de poster votre SSCCE! Ne pas s'attendre à nous d'écrire le code, je l'ai déjà dit, il a bien fonctionné. Je ne crois pas à la cuiller code lorsque tout ce que vous avez à faire est d'essayer une seule ligne de code. Vous n'avez pas apprendre quelque chose de cette façon.
Mise à jour exemple l'utilisation de
applyComponentOrientation()
.+1, je n'ai jamais utilisé applyComponentOrientation() avant.
OriginalL'auteur trashgod
cette ligne
changer l'ordre correct des mots.
j'ai ce résultat
OriginalL'auteur jhonnyjuncal
Les lignes suivantes résolu mon problème:
Ils servent à:
setComponentOrientation()
change l'orientation de l'TextArea
; et,setText()
actualiseTextArea
immédiatement de sorte qu'il s'affiche correctementSimplement réglage
ComponentOrientation
àRIGHT_TO_LEFT
n'est pas suffisant par lui-même.repaint()
ne pas forcer le texte pour se réaligner. Une solution rapide pour moi a été de mettre à jour le contenu du TextArea. Qui a forcé le texte pour se réaligner.OriginalL'auteur Eric D