фокус прилипает к корпусу, и он больше не перемещается клавишей Tab - PullRequest
0 голосов
/ 30 апреля 2018

Я сделал простую оболочку с двумя кнопками SWT.
после компиляции приведенного ниже кода, когда я нажимаю клавишу Tab на оболочке несколько раз, фокус перемещается от кнопки один к кнопке два, а следующий переходит на оболочку (плоскость); и, несмотря на нажатие клавиши табуляции, фокус остается там, он не перемещается больше.
в то время как стиль оболочки - NO_FOCUS.
Может кто-нибудь сказать, пожалуйста, как решить эту проблему?

Я работаю с: Windows 10 64-bit, Java 8 64-bit, swt v4.7.3, Eclipse Neon (Java-разработчики SEE),

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class MainWindows {
MainWindows() {
Display display = new Display();
Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.CENTER | SWT.NO_FOCUS | SWT.TOP);
shell.setText("test win");
shell.setLayout(new RowLayout());
shell.setSize(500, 500);
Button b1 = new Button(shell, SWT.PUSH);
Button b2 = new Button(shell, SWT.PUSH);
b1.setBounds(100, 100, 50, 50);
b2.setBounds(200, 200, 50, 50);
b1.setText("b1");
b2.setText("b2");
shell.open();

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

display.dispose();
}
      static void main(String[] args) {
MainWindows mainWindows = new MainWindows();
}
}

1 Ответ

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

Я заметил, что эта проблема возникает из-за того, что Style SWT.CENTER неправильно использовался в качестве аргумента конструктора Shell.
Стиль CENTER является константой для поведения центра выравнивания, используемого виджетами: Метка кнопки TableColumn и FormAttachment в FormLayout
ссылка: Класс SWT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...