В последнее время я работаю с Window Builder Pro. В последнее время я столкнулся с проблемой выяснения, как добавлять элементы в список при нажатии кнопки. Ошибка в том, что он не может получить доступ к списку. Вот код, который у меня есть:
package wb;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import swing2swt.layout.BorderLayout;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.List;
import swing2swt.layout.BoxLayout;
import swing2swt.layout.FlowLayout;
public class WindowBuilderTest {
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
try {
WindowBuilderTest window = new WindowBuilderTest();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
Shell shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
shell.setLayout(new BorderLayout(0, 0));
TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
TabItem tbtmListTest = new TabItem(tabFolder, SWT.NONE);
tbtmListTest.setText("List Test");
Composite composite = new Composite(tabFolder, SWT.NONE);
tbtmListTest.setControl(composite);
composite.setLayout(new BorderLayout(0, 0));
Composite composite_1 = new Composite(composite, SWT.NONE);
composite_1.setLayoutData(BorderLayout.SOUTH);
composite_1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
Button button = new Button(composite_1, SWT.NONE);
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent arg0) {
list.add("Herpity Derpity"); //It screws up here.
}
});
button.setText("+");
Button button_1 = new Button(composite_1, SWT.NONE);
button_1.setText("-");
List list = new List(composite, SWT.BORDER);
list.setLayoutData(BorderLayout.CENTER);
TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
tabItem.setText("New Item");
Button btnNewButton = new Button(shell, SWT.NONE);
btnNewButton.setLayoutData(BorderLayout.SOUTH);
btnNewButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent arg0) {
System.exit(0);
}
});
btnNewButton.setText("Quit");
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}
Я впервые задаю вопрос о стековом потоке, поэтому у меня большие надежды. Я вложил свое ограниченное терпение в руки вам, ребята.