如何写一个输入对话框,使它实现JOptionPane.showInputDialog类似的功能:弹出对话框之后,
程序会等待你输入数据,直到你点击了“ok”or“cancel”,程序才又继续执行。

解决方案 »

  1.   

    你不会去看showInputDialog的源代码啊???
      

  2.   

    import javax.swing.*;
    public class K extends JFrame {
    JLabel l=new JLabel();
    public K(){
    String s=(String)JOptionPane.showInputDialog(null,"请输入数据:\n","客户选择",JOptionPane.PLAIN_MESSAGE,null,null,null);
         if((s!=null)&&(s.length()>0)){//输入了数据    
         l.setText("你输入的是:"+s);
         JOptionPane.showMessageDialog(null,l,"",JOptionPane.INFORMATION_MESSAGE);
         return;
         }
         else{//没有输入数据         
         l.setText("请输入内容!");
         JOptionPane.showMessageDialog(null,l,"",JOptionPane.INFORMATION_MESSAGE);
         }
        }
        
        public static void main(String[] args){
      K t=new K();
    }
    }
    希望对你有帮助
      

  3.   

    画一个frame,放一个文本框,两个按钮就可以了啊
      

  4.   

    回去看一下JDialog的API,很容易就能做出来。
      

  5.   

    Dialog dlg = new Dialog();
    dlg.setModel(true);
    dlg.show();
      

  6.   

    new 一个frame,把这个frame放在最上层就行
    输入密码,帐号,点击按钮什么的,就直接这个frame上实现吧,当然还可以 System.exit();的
      

  7.   

    LZ同志,JOptionPane用过就知道,不点确定或者取消是做不了别的事情的
    貌似有点骑驴觅驴的味道啊!~
      

  8.   

    package Chapter3;/* 
    *   Simple1.java - 处理事件的第一种方法 
    *    在这个例子中,利用一个ActionListener来监听事件源产生的事件 
    *    用一些if语句来决定是哪个事件源 
    */ 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; public class Simple1 

        private static JFrame frame;   // 定义为静态变量以便main使用 
        private static JPanel myPanel; // 该面板用来放置按钮组件 
        private JButton button1;       // 这里定义按钮组件     
        private JButton button2;       // 以便让ActionListener使用 
         
        public Simple1()               // 构造器, 建立图形界面 
        { 
            // 新建面板 
            myPanel = new JPanel(); 
            // 新建按钮 
            button1 = new JButton("按钮1");  // 新建按钮1 
            button2 = new JButton("按钮2");         SimpleListener ourListener = new SimpleListener(); 
            // 建立一个actionlistener让两个按钮共享 
            button1.addActionListener(ourListener); 
            button2.addActionListener(ourListener);         myPanel.add(button1); // 添加按钮到面板 
            myPanel.add(button2); 
        }     private class SimpleListener implements ActionListener 
        { 
        /* 
         * 利用该内部类来监听所有事件源产生的事件 
         * 便于处理事件代码模块化 
         */ 
            public void actionPerformed(ActionEvent e) 
            { 
                // 利用getActionCommand获得按钮名称 
                // 也可以利用getSource()来实现 
                // if (e.getSource() == button1)             String buttonName = e.getActionCommand(); 
                if (buttonName.equals("按钮1")) 
                    JOptionPane.showMessageDialog(frame, 
                                                "按钮1 被点击"); 
                else if (buttonName.equals("按钮2")) 
                    JOptionPane.showMessageDialog(frame, 
                                                "按钮2 被点击"); 
                else 
                    JOptionPane.showMessageDialog(frame, 
                                                "Unknown event" ); 
            } 
        }     public static void main(String s[]) 
        { 
            Simple1 gui = new Simple1(); // 新建Simple1组件 
             
            frame = new JFrame("Simple1");  // 新建JFrame 
            // 处理关闭事件的通常方法 
            frame.addWindowListener(new WindowAdapter() { 
                 public void windowClosing(WindowEvent e) 
                  {System.exit(0);} });         frame.getContentPane().add(myPanel); 
            frame.pack();                   
            frame.setVisible(true); 
        } 

    //====================================
    直接运行就行。
      

  9.   

    用不用这么麻烦啊直接用JDialog就可以了噻。
      

  10.   


    核心就是我标为红色的这句。
    你可以自己写一个继承Dialog或者JDialog的类,自己画上面需要显示的元素
    在设置其show或者setVisible(true)前,设其模态为true,即可。
      

  11.   

    最简单就是
    CLASS MYFRME EXTENDS JDialog{
         .....这个就是模式对话窗口
    }