Java Swing GUI-Komponenten howto RTL Ansicht?

stimmen
6

Wie kann ich meine Java Swing GUI-Komponenten [Von rechts nach links] mache für arabische Sprache von NetBeans Desktop-Anwendung?

Veröffentlicht am 10/12/2008 um 01:37
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
1

Sie könnten Ausrichtung verwenden, aber das würde die Komplexität nicht umgehen, wenn Sie englische Buchstaben oder Zahlen in Ihrem Text eingebettet haben.

Es könnte vorteilhaft sein, eine Art von formatierten Text-Widget oder sogar einen eingebetteten HTML / Rich-Text-Viewer zu verwenden.

Ich glaube nicht, dass Standard JLabels sonst die Komplexität umgehen kann.

Beantwortet am 10/12/2008 um 01:51
quelle vom benutzer

stimmen
8

Haben Sie nicht nur zu verwenden:

Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

Ich glaube, dass die Swing-Komponenten alle bereits Unterstützung für RTL haben, nicht wahr?

Nicht sicher, wie / wo Sie, dass in Bezug auf Netbeans tun würde, wenn.

Beantwortet am 10/12/2008 um 02:17
quelle vom benutzer

stimmen
5

Der Aufruf von

 Component.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT )

sollte es tun. Aber sicher sein, die SwingConstants zu verwenden, Vorder- und Hinter statt links und rechts in Ihrem Layout. Das gleiche gilt für GridBagConstraints.LINE_START oder ZEILE ENDE statt Westen oder Osten, und wahrscheinlich einige ähnliche Fälle, die ich vergaß zu erwähnen.

Beantwortet am 10/12/2008 um 18:58
quelle vom benutzer

stimmen
0

Sie könnten es verwenden, wenn Sie Komponenten im Inneren Platten innerhalb contentPane haben

        Component[] component = contentPane.getComponents();
    for(int i=0; i<component.length; i++){
        component[i].applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        Component[] cp = ((Container) component[i]).getComponents();
        for(int j=0; j<cp.length; j++){
            try{
                ((Component) ((JComboBox) cp[j]).getRenderer()).applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
            }catch(Exception e){
                continue;

            }
        }
    }
Beantwortet am 10/08/2014 um 09:42
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more