2015-07-13 3 views
1

Я хочу, чтобы зеркальные кнопки (справа налево) управляли кнопками панели управления (кнопки закрытия, минимизации и максимизации) с использованием SWT в Java. Я искал везде и наткнулся на this link, но это не работает для меня.Право на левую оболочку в SWT

Пожалуйста, помогите мне.

+0

Какую версию SWT вы используете? – Baz

+0

Я вижу, что вы новичок в SO. Если вы чувствуете, что ответ решил проблему, отметьте ее как «принятую», нажав зеленую галочку. Это помогает сосредоточиться на старых постах, у которых до сих пор нет ответов. –

ответ

2

Для того, чтобы явно изменить ориентацию элемента управления SWT, использовать

setOrientation(SWT.RIGHT_TO_LEFT); 

Также можно передать флаг в RIGHT_TO_LEFT стиле в конструктор, например

new Shell(parent, SWT.DIALOG_TRIM | SWT.RIGHT_TO_LEFT); 
+0

Ничто из этого не работает для меня. –

+0

Поскольку v3.7, SWT имеет метод setOrientation' на 'Control' (который наследует' Shell') –

+0

Вы правы. Я использовал старую версию SWT. Теперь он отлично работает. Большое спасибо –

0

JFace Window будет содержать SWT Shell при открытии.

Существует Shell#setOrientation API (который унаследован от Control, кстати). Используйте это, чтобы зеркалировать элементы управления (проверьте javadoc).

/** 
* 
* @author ggrec 
* 
*/ 
public class Tester 
{ 

    public static void main(final String[] args) 
    { 
     final Display display = new Display(); 
     final Shell shell = new Shell(display); 
     shell.setLayout(new GridLayout(1, false)); 

     shell.setOrientation(SWT.RIGHT_TO_LEFT); 

     shell.pack(); 
     shell.open(); 
     while (!shell.isDisposed()) 
     { 
      if (!display.readAndDispatch()) 
       display.sleep(); 
     } 
     display.dispose(); 
    } 

} 
+0

Но _shell_ не имеет метода _setOrientation_. –

+0

@ user3604786 Скорее всего, вы используете неправильный импорт 'Shell'. :-) – GGrec

Смежные вопросы