У меня есть WizardPage с именем PageOne с текстовым полем, я хочу напечатать данные, введенные в текстовое поле PageOne, для отображения на второй странице.
Я попытался сохранить значение в другом объекте и передать этот объект объекту PageTwo, и они пытаются отобразить, я попытался отправить сам объект PageOne. Но в обоих случаях он печатает NULL. Я считаю, что это распечатывает значение по умолчанию, т. Е. Null загружается при загрузке страницы.
Как мне справиться с такими сценариями?
Код:
PageOne:
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
Label label1 = new Label(container, SWT.NONE);
label1.setText("Put a value here.");
text1 = new Text(container, SWT.BORDER | SWT.SINGLE);
text1.setText("");
text1.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (!text1.getText().isEmpty()) {
setPageComplete(true);
}
}
});
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
text1.setLayoutData(gd);
setControl(container);
setPageComplete(true);
}
PageTwo:
public class PageTwo extends WizardPage {
private Text text1;
private Composite container;
private Text text2;
PageOne pageOne;
public PageTwo(PageOne pageOne) {
super("PageTwo ");
this.pageOne=pageOne;
setTitle("PageTwo ");
setDescription("Fake Wizard: PageTwo");
}
public void setText(Text text){
this.text2=text;
}
@Override
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
Label label1 = new Label(container, SWT.NONE);
String result="";
if(pageOne.getText()!=null){
result=pageOne.getText().toString();
}
label1.setText("Put a value here."+result);
/* text1 = new Text(container, SWT.BORDER | SWT.SINGLE);
text1.setText("");
text1.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (!text1.getText().isEmpty()) {
setPageComplete(true);
}
}
});
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
text1.setLayoutData(gd);*/
setControl(container);
setPageComplete(true);
}
public String getText1() {
return text1.getText();
}
}
Обновление
Изменения сделаны:
На странице мастера:
public void addPages() {
super.addPages();
DataTransferObject dto = new DataTransferObject();
addPage(new PageOne(dto));
addPage(new PageTwo(dto));
addPage(new PageThree());
}
DataTransferObject
public class DataTransferObject {
String data=null;
public String getData(){
return this.data;
}
public void setData(String data){
this.data=data;
}
}
PageOne:
public class PageOne extends WizardPage {
private Text text1;
private Composite container;
private DataTransferObject dto;
public Text getText(){
return this.text1;
}
public PageOne(DataTransferObject dto) {
super("PageOne ");
setTitle("PageOne ");
this.dto=dto;
setDescription("Fake Wizard: PageOne");
}
@Override
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
Label label1 = new Label(container, SWT.NONE);
label1.setText("Put a value here.");
text1 = new Text(container, SWT.BORDER | SWT.SINGLE);
text1.setText("");
text1.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
if (!text1.getText().isEmpty()) {
setPageComplete(true);
}
}
});
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
text1.setLayoutData(gd);
setControl(container);
setPageComplete(true);
}
public String getText1() {
return text1.getText();
}
@Override
public IWizardPage getNextPage() {
// TODO Auto-generated method stub
System.out.println("Data is "+this.text1.getText().toString());
dto.setData(this.text1.getText().toString());
return super.getNextPage();
}
}
PageTwo:
public class PageTwo extends WizardPage {
private Text text1;
private Composite container;
private Text text2;
PageOne pageOne;
DataTransferObject dto;
public PageTwo(DataTransferObject dto) {
super("PageTwo ");
this.dto=dto;
setTitle("PageTwo ");
setDescription("Fake Wizard: PageTwo");
}
public void setText(Text text){
this.text2=text;
}
@Override
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 2;
// Label label1 = new Label(container, SWT.NONE);
String result="";
org.eclipse.swt.widgets.List single = new org.eclipse.swt.widgets.List(container, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL);
if(!(dto.data==null)){
single.add(dto.getData());
}
setControl(container);
setPageComplete(true);
}
public String getText1() {
return text1.getText();
}
}
Часть пользовательского интерфейса:
PageOne
![enter image description here](https://i.stack.imgur.com/G0MSt.png)
Страница вторая
![enter image description here](https://i.stack.imgur.com/84SE0.png)