希望能调用登陆窗口(如系统用户登陆或是数据库联接等),信息完整才能继续执行,否则,给出提示,而后是退出等操作(自己决定下一步操作)。可以用模态的JDialog,然后需要用到的时候就JDialog.setVisible(true)
JDialog jd = new JDialog( frame, true );
...................
这样的Jialog就一直会在你的Frame前面直到你关闭了JDialog才能对Frame操作
希望弹出另外对话框,可是却为空白窗体。对于这样的窗体,继承关系是唯一的码?
并不是唯一的import java.io.*;
import javax.swing.*;public class Test {
  public static void main (String args[])  {
    JButton jb = new JButton();
    JFileChooser jf = new JFileChooser();
    jf.showSaveDialog( jb );
  } 
 }

解决方案 »

  1.   

    相关代码:
    登陆窗口-package test;import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.event.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */public class LoginPane extends JFrame {
      JTextField jTextField1 = new JTextField();
      JLabel jLabel1 = new JLabel();
      TitledBorder titledBorder1;
      JLabel jLabel2 = new JLabel();
      JTextField jTextField2 = new JTextField();
      JLabel jLabel3 = new JLabel();
      JTextField jTextField3 = new JTextField();
      JLabel jLabel4 = new JLabel();
      JTextField jTextField4 = new JTextField();
      JButton jButton1 = new JButton();
      JButton jButton2 = new JButton();
      boolean disp=false ;  public LoginPane() {
       super();
      }
      public void init(){
        try {
          jbInit();
        }
        catch(Exception ex) {
          ex.printStackTrace();
        }
      }  void jbInit() throws Exception {
        titledBorder1 = new TitledBorder("");
        jTextField1.setBackground(Color.lightGray);
        jTextField1.setForeground(SystemColor.activeCaption);
        jTextField1.setText("jTextField1");
        jTextField1.setBounds(new Rectangle(136, 7, 115, 29));
        this.setLayout(null);
        jLabel1.setBorder(titledBorder1);
        jLabel1.setToolTipText("");
        jLabel1.setText("服务器:端口");
        jLabel1.setBounds(new Rectangle(37, 7, 93, 28));
        jLabel2.setBounds(new Rectangle(37, 42, 93, 28));
        jLabel2.setText("数  据  库  名");
        jLabel2.setToolTipText("");
        jLabel2.setBorder(titledBorder1);
        jTextField2.setBounds(new Rectangle(136, 41, 115, 29));
        jTextField2.setBackground(Color.lightGray);
        jTextField2.setForeground(SystemColor.activeCaption);
        jTextField2.setText("jTextField1");
        jLabel3.setBorder(titledBorder1);
        jLabel3.setToolTipText("user name");
        jLabel3.setText("登  用  户  名");
        jLabel3.setBounds(new Rectangle(37, 77, 93, 28));
        jTextField3.setBackground(Color.lightGray);
        jTextField3.setForeground(SystemColor.activeCaption);
        jTextField3.setText("jTextField1");
        jTextField3.setBounds(new Rectangle(136, 76, 115, 29));
        jLabel4.setBounds(new Rectangle(36, 110, 93, 28));
        jLabel4.setText("登  用  密  码");
        jLabel4.setToolTipText("user password");
        jLabel4.setBorder(titledBorder1);
        jTextField4.setBounds(new Rectangle(136, 111, 115, 29));
        jTextField4.setBackground(Color.lightGray);
        jTextField4.setForeground(SystemColor.activeCaption);
        jTextField4.setText("jTextField1");
        this.setBackground(new Color(197, 197, 255));
      //  this.setBorder(BorderFactory.createEtchedBorder());
        jButton1.setBackground(new Color(197, 197, 225));
        jButton1.setBounds(new Rectangle(37, 153, 81, 31));
        jButton1.setBorder(BorderFactory.createEtchedBorder());
        jButton1.setToolTipText("");
        jButton1.setText("确    认");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jButton1_actionPerformed(e);
          }
        });
        jButton2.setText("取    消");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jButton2_actionPerformed(e);
          }
        });
        jButton2.setToolTipText("");
        jButton2.setBackground(new Color(197, 197, 225));
        jButton2.setBounds(new Rectangle(169, 154, 81, 31));
        jButton2.setBorder(BorderFactory.createEtchedBorder());
        this.add(jLabel1, null);
        this.add(jTextField1, null);
        this.add(jLabel2, null);
        this.add(jTextField2, null);
        this.add(jLabel3, null);
        this.add(jTextField3, null);
        this.add(jLabel4, null);
        this.add(jTextField4, null);
        this.add(jButton1, null);
        this.add(jButton2, null);
      }  void jButton2_actionPerformed(ActionEvent e) {
         System.exit(0);
      }  void jButton1_actionPerformed(ActionEvent e) {  }/*  public  static void main(String[] agrs){
       LoginPane login=new LoginPane();
      try{
       login.init();
       }
      catch(Exception e){
       e.printStackTrace();
      }
      }
    */
    }
    如何把上述代码实现为完整的登陆窗口呢?!!
    ********************************调用代码:use test**************
       void jButton4_actionPerformed(ActionEvent e) {
        LoginPane lp=new LoginPane();
        lp.show();//调用后为空白窗体
     
      }
      

  2.   

    试试看,还有什么问题。package test;
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.event.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */public class LoginPane extends JFrame {
        JTextField jTextField1 = new JTextField();
        JLabel jLabel1 = new JLabel();
        TitledBorder titledBorder1;
        JLabel jLabel2 = new JLabel();
        JTextField jTextField2 = new JTextField();
        JLabel jLabel3 = new JLabel();
        JTextField jTextField3 = new JTextField();
        JLabel jLabel4 = new JLabel();
        JTextField jTextField4 = new JTextField();
        JButton jButton1 = new JButton();
        JButton jButton2 = new JButton();
        boolean disp=false ;    public LoginPane() {
            super();
            setBounds(10, 10, 300, 250);
            setVisible(true);
            repaint();
        }
        public void init(){
            try {
                jbInit();
            }
            catch(Exception ex) {
                ex.printStackTrace();
            }
        }    void jbInit() throws Exception {
            titledBorder1 = new TitledBorder("");
            jTextField1.setBackground(Color.lightGray);
            jTextField1.setForeground(SystemColor.activeCaption);
            jTextField1.setText("jTextField1");
            jTextField1.setBounds(new Rectangle(136, 7, 115, 29));
            getContentPane().setLayout(null);
            jLabel1.setBorder(titledBorder1);
            jLabel1.setToolTipText("");
            jLabel1.setText("服务器:端口");
            jLabel1.setBounds(new Rectangle(37, 7, 93, 28));
            jLabel2.setBounds(new Rectangle(37, 42, 93, 28));
            jLabel2.setText("数  据  库  名");
            jLabel2.setToolTipText("");
            jLabel2.setBorder(titledBorder1);
            jTextField2.setBounds(new Rectangle(136, 41, 115, 29));
            jTextField2.setBackground(Color.lightGray);
            jTextField2.setForeground(SystemColor.activeCaption);
            jTextField2.setText("jTextField1");
            jLabel3.setBorder(titledBorder1);
            jLabel3.setToolTipText("user name");
            jLabel3.setText("登  用  户  名");
            jLabel3.setBounds(new Rectangle(37, 77, 93, 28));
            jTextField3.setBackground(Color.lightGray);
            jTextField3.setForeground(SystemColor.activeCaption);
            jTextField3.setText("jTextField1");
            jTextField3.setBounds(new Rectangle(136, 76, 115, 29));
            jLabel4.setBounds(new Rectangle(36, 110, 93, 28));
            jLabel4.setText("登  用  密  码");
            jLabel4.setToolTipText("user password");
            jLabel4.setBorder(titledBorder1);
            jTextField4.setBounds(new Rectangle(136, 111, 115, 29));
            jTextField4.setBackground(Color.lightGray);
            jTextField4.setForeground(SystemColor.activeCaption);
            jTextField4.setText("jTextField1");
            this.setBackground(new Color(197, 197, 255));
            //  this.setBorder(BorderFactory.createEtchedBorder());
            jButton1.setBackground(new Color(197, 197, 225));
            jButton1.setBounds(new Rectangle(37, 153, 81, 31));
            jButton1.setBorder(BorderFactory.createEtchedBorder());
            jButton1.setToolTipText("");
            jButton1.setText("确    认");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    jButton1_actionPerformed(e);
                }
            });
            jButton2.setText("取    消");
            jButton2.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    jButton2_actionPerformed(e);
                }
            });
            jButton2.setToolTipText("");
            jButton2.setBackground(new Color(197, 197, 225));
            jButton2.setBounds(new Rectangle(169, 154, 81, 31));
            jButton2.setBorder(BorderFactory.createEtchedBorder());
            getContentPane().add(jLabel1);
            getContentPane().add(jTextField1);
            getContentPane().add(jLabel2);
            getContentPane().add(jTextField2);
            getContentPane().add(jLabel3);
            getContentPane().add(jTextField3);
            getContentPane().add(jLabel4);
            getContentPane().add(jTextField4);
            getContentPane().add(jButton1);
            getContentPane().add(jButton2);
        }    void jButton2_actionPerformed(ActionEvent e) {
            System.exit(0);
        }    void jButton1_actionPerformed(ActionEvent e) {    }    public  static void main(String[] agrs){
            LoginPane login=new LoginPane();
            try{
                login.init();
                login.repaint();
            }
            catch(Exception e){
                e.printStackTrace();
            }
        }}