Я использую Eclipse и создал приложение SWT. У меня есть два окна:
- Моя первая форма (
MainForm
) - это окно приложения SWT
- Вторая форма (
Form2
) - это JFrame
.
MainForm
имеет кнопку (b1), а Form2
имеет кнопку (b2).
Когда нажимается b1, я создаю объект Form2
и setVisible()
со значением true, чтобы я мог видеть Form2
. Я также скрываю MainForm
во время этого процесса на shell.setVisible(false);
Теперь я хочу открыть MainForm
после нажатия b2 в Form2
, но я не нахожу в любом случае, чтобы сделать это. Можете ли вы помочь мне, как я могу это сделать?
кусок кода от MainForm
:
public class MainForm {
protected Shell shell;
private Text text;
private Text text_1;
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
try {
MainForm window = new MainForm();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
/**
* Create contents of the window.
*/
protected void createContents() {
shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
Button button1 = = new Button(shell, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
Form2 f = new Form2(5);
f.setVisible(true);
shell.setVisible(false);
}
});
}}
Form2
фрагмент кода:
public class Form2 extends JFrame {
private JPanel contentPane;
/**
* Create the frame.
*/
public Form2( int a) {
JOptionPane.showConfirmDialog(null, a);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 834, 560);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnBack = new JButton("Back");
btnBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//I need to know what should I write here to display MainForm. I tried with the following but does not work.
//MainForm f = new MainForm();
//MainForm.this.shell.setVisible(true);
//f.shell.setVisible(true);
}
});
btnBack.setBounds(264, 46, 188, 80);
contentPane.add(btnBack);
}
}
Пожалуйста, см. Прокомментированную часть Form2
. Я был бы очень признателен, если бы вы могли дать мне представление о том, что должно быть написано в закомментированной части Form2
, чтобы я мог отобразить MainForm
оттуда.