02. maj 2006 - 20:22
Der er
1 kommentar
Info fra JDialog til MainFrame.
Hey.
Jeg har problemer med at sende data fra en JDialog til mit hoved vindue. Jeg prøvede at oprette et object af hoved vinduet i JDialog'en med så kunne den ikke compile. Nogen der kan hjælpe???
På forhånd tak...
Et eksempel til inspiration, det er ikke den eneste måde at gøre det på, men en mulighed.
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JTextField;
public class DialogTest extends javax.swing.JFrame {
public DialogTest() {
initComponents();
}
private void initComponents() {
field = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
getContentPane().setLayout(new java.awt.FlowLayout());
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
field.setColumns(30);
field.setEditable(false);
field.setText("Tryk p\u00e5 knappen for at erstatte denne tekst");
getContentPane().add(field);
jButton1.setText("\u00c5ben dialog");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
open_dialog(evt);
}
});
getContentPane().add(jButton1);
pack();
}
private void open_dialog(java.awt.event.ActionEvent evt) {
final MyDialog d = new MyDialog(this, true);
JButton b = d.getOKButton();
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
field.setText( d.getFieldText() );
d.dispose();
}
});
d.setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new DialogTest().setVisible(true);
}
});
}
private javax.swing.JTextField field;
private javax.swing.JButton jButton1;
}
class MyDialog extends JDialog{
public MyDialog(Frame f, boolean modal){
super(f, modal);
setTitle("Skriv en tekst i feltet");
setLocationRelativeTo(f);
fi = new JTextField(20);
b = new JButton("OK");
setLayout( new FlowLayout());
getContentPane().add(fi);
getContentPane().add(b);
pack();
}
public String getFieldText(){
return fi.getText();
}
public JButton getOKButton(){
return b;
}
private JTextField fi;
private JButton b;
}