如何制作像JOptionPane.showMessageDialog(xxx,“xxx”)这样的函数?

时间:2011-02-03 12:58:52

标签: java swing joptionpane

在尝试创建一个显示对话框的函数并且单击确定后可以返回值(如JOptionPane.showMessageDialog(xxx,“xxx”))时,需要整整一个周末的压力?有人可以帮我写代码吗?

提前致谢

马卡拉

3 个答案:

答案 0 :(得分:4)

使用JOptionPane.showInputDialog()。

其他替代方法是将GUI控件交给JOptionPane.showMessageDialog(),并在控件关闭后查询控件的状态,或者使用JDialog。

如果你花费超过15分钟试图让JoptionPane完全按照要求去做,那么这是一个好的迹象,表明JOptionPane不是这个职位的类。

答案 1 :(得分:2)

这里有一个简单的方法。它是一个类而不是一个函数。如果要仅使用两个参数构造它,请创建一个具有所需两个参数的附加构造函数。

Here你可以看看真正的麦考伊......

public class MyOwnJDialog extends javax.swing.JDialog {
    private String theMessage;

    public MyOwnJDialog(java.awt.Frame parent, boolean modal, String theMessage) {
        super(parent, modal);
        initComponents();
        this.theMessage = theMessage;
        jLabel1.setText(theMessage);
        setVisible(true);
    }


    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER);

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton1);

        getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);
        pack();
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        dispose();
    }

    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;

}

答案 2 :(得分:1)

  1. 设计您需要的类以及您希望GUI看起来像什么
  2. 创建类和方法的框架并开始填写详细信息。
  3. 创建一个可以将它们放在一起并返回输出的方法。
  4. 一些有用的项目: