Java dialógus ablak

Fórumok

Helló!

Saját java dialógusablakot szeretnék csinálni, de sehol sem találok leírást a JDialog-hoz, és elsőre nem triviális a használata. A JoptionPane nem felel meg mert egy oylan dialógus ablak kéne amiben két szövegmező és két gomb van.

Ha valaki tud ehhet tutorial-t (vagy esetleg van saját kódja) az légyszi dobjon rá egy linket, mert ez egy házihoz kell amire csak korlátozott idő áll rendelkezésre.

Előre is köszi.
Szati

Hozzászólások


            final JPasswordField pass = new JPasswordField();
            final JLabel label = new JLabel("Írd be a jelszavad: ");
            JOptionPane opt = new JOptionPane(new Object[]{label, pass}, JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
            JDialog dialog = opt.createDialog("Jelszó: ");
            // ez ide azért kell, hogy a fókusz a jelszómezőn legyen
            dialog.addComponentListener(new ComponentAdapter(){
                    @Override
                    public void componentShown(ComponentEvent e){
                        pass.requestFocusInWindow();
                    }
            });
            dialog.setVisible(true);
            int res;
            try{res = (Integer)opt.getValue();}
            catch(NullPointerException e){ return; }
            dialog.dispose();
            if(res!=JOptionPane.OK_OPTION) return;

Ez csak egy példa, ha valami nem világos, akkor kérdezz :)

Szerintem a hagyományos JFrame bőven elegendő. Abba mindent bele tudsz pakolni, amit szeretnél.


import java.awt.*;
import javax.swing.*;

public class TextsAndButtons extends JFrame {
    JTextArea t1 = new JTextArea("Első szövegmező");
    JTextArea t2 = new JTextArea("Második szövegmező");
    JButton b1 = new JButton("B1");
    JButton b2 = new JButton("B2");
    
    public TextsAndButtons() {
        super("My Dialog");
        setSize(300, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GridLayout grid = new GridLayout(3,1);
        grid.setVgap(6);
        setLayout(grid);

        JPanel panel = new JPanel();
        FlowLayout flow = new FlowLayout();
        panel.setLayout(flow);
        panel.add(b1);
        panel.add(b2);
        
        add(t1);
        add(t2);
        add(panel);
        
        setVisible(true);
    }
    
    public Insets getInsets() {
        Insets border = new Insets(45, 10, 10, 10);
        return border;
    }
    
    public static void main(String[] args) {
        TextsAndButtons tab = new TextsAndButtons();
    }

}

Köszi ezt nagyjábol értem! (majd azért mindjárt kérdezek még egy két dolgot)

Azt nem tudod esetleg hogy ha NetBeans-ban (6.0-ás verzió) csináltam egy iylen dialógus ablakot akkor azt hogy tudom elődobni?