package de.memtext.dlg; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dialog; import java.awt.Frame; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JPanel; /** * Dialog which can only be closed by clicking OK. * * setCenter for convenienance. * * @author MB * */ public class OkDlg extends DialogWithExit { private JPanel psouth = new JPanel(); protected JButton ok = new JButton("OK"); /** * Constructor for OkDlg. * @param arg0 * @throws HeadlessException */ public OkDlg(Frame owner) throws HeadlessException { super(owner, true); initSouth(); } public OkDlg(Frame owner, String title, boolean isModal) { super(owner, title, isModal); initSouth(); } public OkDlg(Frame owner, String title) throws HeadlessException { super(owner, title, true); initSouth(); } public JButton getOkBtn() { return ok; } /** * Constructor for OkDlg. * @param arg0 * @throws HeadlessException */ public OkDlg(Dialog arg0) throws HeadlessException { super(arg0, true); initSouth(); } private void initSouth() { ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { performOk(); } }); psouth.add(ok); Container cp = this.getContentPane(); cp.add(psouth, BorderLayout.SOUTH); this.getRootPane().setDefaultButton(ok); } public void addBeforeOK(JComponent comp) { int pos = de.memtext.util.ComponentUtils.getPositionOnComponent(ok, psouth); psouth.add(comp, pos); } public void addAfterOK(JComponent comp) { int pos = de.memtext.util.ComponentUtils.getPositionOnComponent(ok, psouth); psouth.add(comp, pos + 1); } /** * subclasses can override this method and specify commands * to be executed when OK was clicked */ protected void performOk() { this.hide(); } public static void main(String args[]) { OkDlg d = new OkDlg(new javax.swing.JFrame()); d.show(); } }