Avatar billede christoffer535 Nybegynder
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...
Avatar billede _carsten Nybegynder
02. maj 2006 - 21:31 #1
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;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester