Criar JFrame como JOptionPane

E aí pessoal!

Seguinte, eu criei uma JFrame simples, com só dois JTextFields e um JButton, q parece um showInputDialog do JOptionPane, só q com dois campos de texto. O q eu preciso fazer e o seguinte, um método chama o jframe e pede pra inserir os dois valores e os guarda num array de string. Só q Quando eu chamo um método do meu jframe e depois chamo um JOptionpane por exemplo, ele mostra o meu JFrame e o JOptionPane em seguida, e eu preciso q ele só mostre o JOptionPane depois q eu inserir os valores no meu frame, assim como num JOptionPane.showInputdialog().

Alguem tem uma ideia?

Esse é o meu frame:

package trabFmc;

import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JButton;


public class JDoubleOptionPane extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JLabel textoCorpo = null;
	private JTextField textoField1 = null;
	private JTextField textoField2 = null;
	private static JButton enviaButton = null;
	private static String titulo = null;
	private static String corpo = null;
	private static String field1 = null;
	private static String field2 = null;
	
	//Métodos sets e gets (privados)
	private static String getField1() {
		return field1;
	}
	private static void setField1(String field1) {
		JDoubleOptionPane.field1 = field1;
	}
	private static String getField2() {
		return field2;
	}
	private static void setField2(String field2) {
		JDoubleOptionPane.field2 = field2;
	}
	private static String getTitulo() {
		return titulo;
	}
	private static void setTitulo(String titulo) {
		JDoubleOptionPane.titulo = titulo;
	}
	private static String getCorpo() {
		return corpo;
	}
	private static void setCorpo(String corpo) {
		JDoubleOptionPane.corpo = corpo;
	}
	//Fim dos sets e gets
	
	//Método de input
	public static String[] showInputDialog(String corpo, String titulo){
		
		JDoubleOptionPane.setCorpo(corpo);
		JDoubleOptionPane.setTitulo(titulo);
		
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JDoubleOptionPane doubleOption = new JDoubleOptionPane();
				doubleOption.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				doubleOption.setVisible(true);
			}
		});
		
		String [] valores = {JDoubleOptionPane.getField1(), JDoubleOptionPane.getField2()};
		
		return valores;
		
	}
	
	public JDoubleOptionPane() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(354, 190);
		this.setContentPane(getJContentPane());
		this.setResizable(false);
		if(JDoubleOptionPane.getTitulo().equals(null)){
			this.setTitle("Input");
		}else{
			this.setTitle(JDoubleOptionPane.getTitulo());
		}
		
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			textoCorpo = new JLabel();
			textoCorpo.setBounds(new Rectangle(15, 15, 316, 20));
			textoCorpo.setText(JDoubleOptionPane.getCorpo());
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(textoCorpo, null);
			jContentPane.add(getTextoField1(), null);
			jContentPane.add(getTextoField2(), null);
			jContentPane.add(getEnviaButton(), null);
		}
		return jContentPane;
	}

	private JTextField getTextoField1() {
		if (textoField1 == null) {
			textoField1 = new JTextField();
			textoField1.setBounds(new Rectangle(15, 45, 316, 20));
		}
		return textoField1;
	}

	private JTextField getTextoField2() {
		if (textoField2 == null) {
			textoField2 = new JTextField();
			textoField2.setBounds(new Rectangle(15, 75, 316, 20));
		}
		return textoField2;
	}

	private JButton getEnviaButton() {
		if (enviaButton == null) {
			enviaButton = new JButton();
			enviaButton.setBounds(new Rectangle(121, 104, 105, 40));
			enviaButton.setText("OK");
			enviaButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					JDoubleOptionPane.setField1(textoField1.getText());
					JDoubleOptionPane.setField2(textoField2.getText());
				}
			});
		}
		return enviaButton;
	}

}

Aí, como o método é static, eu chamaria assim:

JDoubleOptionPane.showInputDialog("Digite os dois valores", "Título da janela");

Fico esperando.

Vlw pessoal!!!

Pô, qdo a gente pergunta de web vem vinte pra te explicar, mas qdo é Java SE, ninguém.

Vlw…