option pane questions

hi experts

I have two questions:

can you get an option pane with a check box in it that will affect the outcome? for example if it is checked then you save a certain part of the program and if not it saves the default..whatever..

second I need an example of an option pane that would have three buttons. yes, no, and cancel and how to know know which button was pressed and accordingly take action


thanks
SamooramadAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
zzynxConnect With a Mentor Software engineerCommented:
For the 2nd:

/*
 * JOptionPaneDemo.java
 *
 */

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

/**
 *
 * @author  zzynx
 */
public class JOptionPaneDemo2 extends JFrame {
   
    public JOptionPaneDemo2() {
        init();
        setSize(500, 400);
        setLocationRelativeTo(null);
    }

    private void init() {
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                System.exit(0);
            }
        });
       
        JButton button = new JButton("Go");
        button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buttonActionPerformed(evt);
            }
        });
       
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(button);
       
        pack();
    }
   
    private void buttonActionPerformed(java.awt.event.ActionEvent evt) {
        JOptionPane p = new JOptionPane("Are you sure you want to log out?",
            JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_CANCEL_OPTION);
        final JDialog d = p.createDialog(this, "Report");
        d.setLocationRelativeTo(this);
        d.setVisible(true);
        Object value = p.getValue();
        if (value == null || !(value instanceof Integer)) {
            JOptionPane.showMessageDialog(null, "You closed without answering");
        }
        else {
            int i = ((Integer)value).intValue();
            if (i == JOptionPane.DEFAULT_OPTION) {
                JOptionPane.showMessageDialog(null, "You pressed ESC");
            }
            else if (i == JOptionPane.NO_OPTION) {
                JOptionPane.showMessageDialog(null, "You choose \"No\"");
            } else if (i == JOptionPane.YES_OPTION) {
                JOptionPane.showMessageDialog(null, "You choose \"Yes\"");
            } else if (i == JOptionPane.CANCEL_OPTION) {
                JOptionPane.showMessageDialog(null, "You choose \"Cancel\"");
            }
        }
    }

    public static void main(String args[]) {
        JOptionPaneDemo2 f = new JOptionPaneDemo2();
        f.show();
    }
}
0
 
zzynxSoftware engineerCommented:
For the 1st:

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

    public class DialogBox
    {
        public static void main(String[] args)
        {
            JPanel fields = new JPanel();
            JLabel label = new JLabel("Some text:");
            JCheckBox cb = new JCheckBox();
            fields.add(label);
            fields.add(cb);

            String[] options = {"Yes", "No", "My Cancel"};
            int input = JOptionPane.showOptionDialog(
                null,   // parentComponent
                fields, // message
                "Enter your input", // title
                JOptionPane.YES_NO_CANCEL_OPTION,   // optionType
                JOptionPane.QUESTION_MESSAGE,   // messageType
                null,   // icon
                options,    // options
                options[0]  // initialValue
            );

            if (input == 0) {
                System.out.println("Yes pressed. CheckBox selected = " + cb.isSelected());
            }
            else if (input == 1) {
                System.out.println("No pressed. CheckBox selected = " + cb.isSelected());
            }
            else if (input == 2) {
                System.out.println("Cancel pressed. CheckBox selected = " + cb.isSelected());
            }

            System.exit(0);
        }
    }
0
 
zzynxSoftware engineerCommented:
Next time you better ask one question per ... errrh question ;°)
0
 
SamooramadAuthor Commented:
yeah I should I guess :)

thanks for the help
0
 
zzynxSoftware engineerCommented:
Thanks
0
All Courses

From novice to tech pro — start learning today.