现在在JDialog中有两个按钮,名称分别“ok”,和“download”,我想通过JDialog分别得到他们的值做判断,请那个高手来帮一下

解决方案 »

  1.   

    什么意思?没看明白。说详细点。
    最好以用例形式体现一下。比如,你点击
    OK按钮,将会发生什么,你又希望得到什么。
    downLoad呢
      

  2.   

    谢谢你的回答,我现在想得到每一个按钮对它们分别做判断,点击“ok”按钮是关闭,点击“download”按钮是下载所查询的信息
      

  3.   

    -_-!!
    那也不至于叫做遍历吧……
    比如这样:
    简单写了两个类。或许不能满足你,但是你可以提取些思路吧。一般不会把按钮在传递回去,传回去一个值,来表示就是了。
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;public class JDialogFrame extends JFrame {
    private static final long serialVersionUID = 1L; public JDialogFrame() {
    super();
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    installComponents(); setSize(400, 300);
    setLocationRelativeTo(null);
    setVisible(true);
    } private void installComponents() {
    Container c = getContentPane(); JButton btn = new JButton("Click");
    c.add(btn, BorderLayout.SOUTH);
    btn.addActionListener(l);
    } private ActionListener l = new ActionListener() { public void actionPerformed(ActionEvent e) {
    int rs = DODialog.showDODialog();
    // System.out.println(rs);
    switch (rs) {
    case DODialog.OK:
    System.out.println("OK");
    break;
    case DODialog.CANCEL:
    System.out.println("cancel");
    break;
    case DODialog.DOWN_LOAD:
    System.out.println("download");
    break; default:
    break;
    }
    }
    }; public static void main(String[] args) {
    new JDialogFrame();
    }
    }import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JPanel;public class DODialog extends JDialog {
    private static final long serialVersionUID = 1L;
    public static final int DOWN_LOAD = 1 << 10;
    public static final int OK = 2 << 10;
    public static final int CANCEL = -1; private JButton downLoadButton;
    private JButton okButton;
    private int rs = CANCEL; public DODialog() {
    super();
    setModal(true);
    installComponents();
    } private void installComponents() {
    Container c = getContentPane(); c.add(createButtonPanel(), BorderLayout.SOUTH);
    } private JPanel createButtonPanel() {
    JPanel p = new JPanel();
    p.setLayout(new FlowLayout(FlowLayout.RIGHT));
    downLoadButton = new JButton("download");
    downLoadButton.addActionListener(new ActionListener() { @Override
    public void actionPerformed(ActionEvent e) {
    rs = DOWN_LOAD;
    setVisible(false);
    }
    }); okButton = new JButton("OK");
    okButton.addActionListener(new ActionListener() { @Override
    public void actionPerformed(ActionEvent e) {
    rs = OK;
    setVisible(false);
    }
    });
    p.add(downLoadButton);
    p.add(okButton); return p;
    } public static int showDODialog() {
    DODialog d = new DODialog();
    d.setSize(600, 400);
    d.setLocationRelativeTo(null);
    d.setVisible(true); int rs = d.rs;
    d.dispose();
                    d = null;
    return rs; }
    }
      

  4.   

    刚学swing还不怎么入门,多谢指教