package de.memtext.dlg; 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.JFrame; import javax.swing.JLabel; /** * Abstract Dialog in which OK or Cancel can be clicked. * Subclasses must implement performCancel and performOk. * setCenter for convenience. * It's important that clients don't call getContentPane().setLayout(new BorderLayout()) or something like that, because that will cause southPanel to disappear */ public abstract class OkCancelClearDlg extends OkCancelDlg { private boolean wasClearSelected; protected JButton btnClear = new JButton("Leeren"); /** * Constructor for OkCancelClearDlg. * @param arg0 * @param arg1 * @throws HeadlessException */ public OkCancelClearDlg(Frame arg0, String title) throws HeadlessException { super(arg0, title, true); initOkCancelClearDlg(); } private void initOkCancelClearDlg() { btnClear.setActionCommand("Clear"); btnClear.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { wasOkSelected = false; wasClearSelected = true; performClear(); } }); addAfterCancel(btnClear); } public boolean wasClearSelected() { return wasClearSelected; } protected abstract void performClear(); public static void main(String[] args) { OkCancelClearDlg dlg = new OkCancelClearDlg(new JFrame(), "test") { @Override protected void performOk() { } @Override protected void performCancel() { } @Override protected void performClear() { } }; // dlg.addAboveOK(new JLabel("bla")); dlg.setCenter(new JLabel("cnter")); dlg.pack(); dlg.show(); } }