Я расширенной JDialog создать пользовательский диалог, в котором пользователь должен заполнить некоторые поля: dialog http://www.freeimagehosting.net/uploads/3d4c15ed9a.jpgПолучить вход введенный в JDialog
Как я должен получить вошли данные?
Я придумал решение, которое работает. Он имитирует JOptionPane, но так, как я делаю это выглядит некрасиво со мной из-за статических полей, участвующих ... Вот примерно мой код:
public class FObjectDialog extends JDialog implements ActionListener {
private static String name;
private static String text;
private JTextField fName;
private JTextArea fText;
private JButton bAdd;
private JButton bCancel;
private FObjectDialog(Frame parentFrame) {
super(parentFrame,"Add an object",true);
// build the whole dialog
buildNewObjectDialog();
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==bAdd){
name=fName.getText();
text=fText.getText();
}
else {
name=null;
text=null;
}
setVisible(false);
dispose();
}
public static String[] showCreateDialog(Frame parentFrame){
new FObjectDialog(parentFrame);
String[] res={name,text};
if((name==null)||(text==null))
res=null;
return res;
}
}
Как я уже говорил, что работает правильно, но я думаю, что может вызвать серьезные параллельные проблемы ...
Есть ли более чистый способ сделать это? Как это делается в JOptionPane?
Какой внешний вид вы используете? –
@Martijn Courteaux: Nimbus (http://stackoverflow.com/questions/2616448/im-tired-of-jbuttons-how-can-i-make-a-nicer-gui-in-java) ;-) –