对话框一:
public class Dia_one extends Dialog { private static final long serialVersionUID = 1L;
private int n=0;
private Label label = null;
private TextField textField = null;
private TextField textField1 = null;
Dia_two d;
Dia_one tt=this;
/**
 * This method initializes textField
 * 
 * @return java.awt.TextField
 */
private TextField getTextField() {
if (textField == null) {
textField = new TextField();
textField.setBounds(new Rectangle(22, 68, 83, 25));
textField.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
// System.out.println("mouseClicked()"); TODO Auto-generated Event stub mouseClicked()
Frame  f1=new Frame();
d = new Dia_two(f1);
d.setVisible(true);
d.requestFocus();
}
});
}
return textField;
} /**
 * This method initializes textField1
 * 
 * @return java.awt.TextField
 */
private TextField getTextField1() {
if (textField1 == null) {
textField1 = new TextField();
textField1.setBounds(new Rectangle(109, 69, 252, 23));
}
return textField1;
} /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
Frame  f=new Frame();
Dia_one d = new Dia_one(f);
d.setVisible(true);

} /**
 * @param owner
 */
public Dia_one(Frame owner) {
super(owner);
initialize(); } /**
 * This method initializes this
 * 
 * @return void
 */
private void initialize() {
label = new Label();
label.setBounds(new Rectangle(22, 39, 53, 26));
label.setText("贷款序号");
this.setLayout(null);
this.setSize(492, 308);
this.add(label, null);
this.add(getTextField(), null);
this.add(getTextField1(), null);
this.setModal(false);
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0); 
}
});
this.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent e) {
textField1.setText(d.data);
tt.requestFocus();
}
});
}}
对话框二:
public class Dia_two extends Dialog { private static final long serialVersionUID = 1L;
private TextField textField = null;
private Button button = null;
private JScrollPane jScrollPane = null;
private int flag=0;
public  /* static   final*/   String   data=null;  

private Dia_two tt=this;
private JTable jTable = new JTable(){//添加部分1
  public boolean isCellEditable(int row, int column) {
    return false;
   }};
private DefaultTableModel dt=new DefaultTableModel();


public Dia_two(Frame owner) {
super(owner);
initialize();
} private void initialize() {
  jTable.addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    if (e.getButton() == MouseEvent.BUTTON1) {// 单击鼠标左键
     if (e.getClickCount() == 2) {
      int colummCount = jTable.getModel().getColumnCount();//
   data=jTable.getModel().getValueAt(jTable.getSelectedRow(), colummCount-1).toString();       tt.dispose();
     }
    }
   }
  });
  
/*jTable.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent e) {
if ((e.getPropertyName().equals("model"))) {
System.out.println("propertyChange(model)"); // TODO Auto-generated property Event stub "model" 
}
}
});*/
if(flag==0) 
    {
      this.dispose();
      //this = null;
    }
  
this.setLayout(null);
this.setSize(491, 363);
this.add(getTextField(), null);
this.add(getButton(), null);
this.add(getJScrollPane(), null);

this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.out.println("windowClosing()"); // TODO Auto-generated Event stub windowClosing()
}
});
} private TextField getTextField() {
if (textField == null) {
textField = new TextField();
textField.setBounds(new Rectangle(21, 51, 354, 31));
}
return textField;
} /**
 * This method initializes button
 * 
 * @return java.awt.Button
 */
private Button getButton() {
if (button == null) {
button = new Button();
button.setBounds(new Rectangle(387, 50, 84, 34));
button.setLabel("搜索");
button.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
test();
}
});
}
return button;
} private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(23, 97, 447, 251));
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}
private JTable getJTable() {
jTable.setModel(dt);
jTable.setRowHeight(20);
jTable.setRowSelectionAllowed(true);
jTable.setSelectionBackground(Color.lightGray);
jTable.setSelectionForeground(Color.white);
jTable.setGridColor(Color.black);
jTable.setShowGrid(true);
  jTable.setShowHorizontalLines(true);
  jTable.setShowVerticalLines(true);
  jTable.setBackground(Color.white);
return jTable;
}

 public void test()
 {
  try
  {    Connection conn; 
   Statement stmt;  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=loans"; 
String user="huyang"; 
String password="111111"; 
conn = DriverManager.getConnection(url,user,password); 
CallableStatement cstmt = conn.prepareCall("{call dbo.pp_IDEditorGetData(?,?,?,?,?)}");

cstmt.setInt(1,4);
cstmt.setString(2,null);
cstmt.setString(3,null);
cstmt.setString(4,null);
cstmt.setObject(5, 0); ResultSet rs = cstmt.executeQuery();             ResultSetMetaData rsmd = rs.getMetaData();
           int numberOfColumns=rsmd.getColumnCount();
           int b=1;
           System.out.println(numberOfColumns);
           while(b<=numberOfColumns)
           {  
                dt.addColumn(rsmd.getColumnName(b)); 
                b++;
           }
          while(rs.next())
          {
           Vector newRow;
           while(rs.next()) 
           { 
           newRow=new Vector(); 
           int c=1; 
           while(c<=numberOfColumns) 
           { 
           newRow.addElement(rs.getString(c)); 
           c++; 
           } 
           dt.addRow(newRow); 
           } 
          }
         }  
        catch(Exception e)
           {
            e.printStackTrace();
           }
 } 

两个小问题:
1、当点击dialog1弹出dialog2时,有一个方法是让弹出他后其他窗口用户都不能点的。那个是什么。
2、希望把dialog2中的data数据填回dialog一中的textfield中,有什么好办法?

解决方案 »

  1.   

    问题一:setModal(true);调用dialog2这个方法,使dialog2变为模式的吧
    问题二:
      办法一:dialog1有一个方法,接收data,dialog2中调用dialog1的这个方法.那么就需要在构造dialog2的时候把dialog1引用传过去或者其它的方法得到dialog1,然后调用那个方法
      办法二:dialog1提供textfield的访问函数,dialog2中调用这些textfield访问函数,把值放到其中去.
      

  2.   


    import java.awt.Dialog;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.Rectangle;
    import java.awt.TextField;import javax.swing.JFrame;public class Dia_one extends Dialog {  private static final long serialVersionUID = 1L; 
    private int n=0; 
    private Label label = null; 
    private TextField textField = null; 
    private TextField textField1 = null; 
    Dia_two d; 
    Dia_one tt=this; 
    public void closeTwo()
    {
    if(d!=null)
    {
    d.dispose();
    }
    }
    /** 
     * This method initializes textField 
     * 
     * @return java.awt.TextField 
     */ 
    private TextField getTextField() { 
    if (textField == null) { 
    textField = new TextField(); 
    textField.setBounds(new Rectangle(22, 68, 83, 25)); 
    textField.addMouseListener(new java.awt.event.MouseAdapter() { 
    public void mouseClicked(java.awt.event.MouseEvent e) { 
    // System.out.println("mouseClicked()"); TODO Auto-generated Event stub mouseClicked() 
    JFrame  f1=new JFrame();
    f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    d = new Dia_two(f1,tt); 
    d.setModal(true);
    d.setVisible(true); 
    d.requestFocus(); 

    }); 

    return textField; 
    }  /** 
     * This method initializes textField1 
     * 
     * @return java.awt.TextField 
     */ 
    public TextField getTextField1() { 
    if (textField1 == null) { 
    textField1 = new TextField(); 
    textField1.setBounds(new Rectangle(109, 69, 252, 23)); 

    return textField1; 
    }  /** 
     * @param args 
     */ 
    public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Frame  f=new Frame(); 
    Dia_one d = new Dia_one(f); 
    d.setVisible(true);  }  /** 
     * @param owner 
     */ 
    public Dia_one(Frame owner) { 
    super(owner); 
    initialize();  }  /** 
     * This method initializes this 
     * 
     * @return void 
     */ 
    private void initialize() { 
    label = new Label(); 
    label.setBounds(new Rectangle(22, 39, 53, 26)); 
    label.setText("贷款序号"); 
    this.setLayout(null); 
    this.setSize(492, 308); 
    this.add(label, null); 
    this.add(getTextField(), null); 
    this.add(getTextField1(), null); 
    this.setModal(false); 
    this.addWindowListener(new java.awt.event.WindowAdapter() { 
    public void windowClosing(java.awt.event.WindowEvent e) { 
    System.exit(0); 

    }); 
    this.addFocusListener(new java.awt.event.FocusAdapter() { 
    public void focusGained(java.awt.event.FocusEvent e) { 
    textField1.setText(d.data); 
    tt.requestFocus(); 

    }); 
    } } import java.awt.Button;
    import java.awt.Color;
    import java.awt.Dialog;
    import java.awt.Frame;
    import java.awt.Rectangle;
    import java.awt.TextField;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
    import java.util.Vector;import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;public class Dia_two extends Dialog {  private static final long serialVersionUID = 1L; 
    private TextField textField = null; 
    private Button button = null; 
    private JScrollPane jScrollPane = null; 
    private int flag=0; 
    public  /* static  final*/  String  data=null;  
    Dia_one one = null;
    private Dia_two tt=this; 
    private JTable jTable = new JTable(){//添加部分1 
    public boolean isCellEditable(int row, int column) { 
    return false; 
    }}; 
    private DefaultTableModel dt=new DefaultTableModel(); 
    public Dia_two(Frame owner,Dia_one one) { 
    super(owner); 
    this.one = one;
    initialize(); 
    }  private void initialize() { 
    jTable.addMouseListener(new MouseAdapter() { 
    public void mouseClicked(MouseEvent e) { 
    if (e.getButton() == MouseEvent.BUTTON1) {// 单击鼠标左键 
    if (e.getClickCount() == 2) { 
    int colummCount = jTable.getModel().getColumnCount();// 
    data=jTable.getModel().getValueAt(jTable.getSelectedRow(), colummCount-1).toString(); 
    tt.dispose();
    one.getTextField1().setText(data);



    });  /*jTable.addPropertyChangeListener(new java.beans.PropertyChangeListener() { 
    public void propertyChange(java.beans.PropertyChangeEvent e) { 
    if ((e.getPropertyName().equals("model"))) { 
    System.out.println("propertyChange(model)"); // TODO Auto-generated property Event stub "model" 


    });*/ 
    if(flag==0) 

    this.dispose(); 
    //this = null; 
    }  this.setLayout(null); 
    this.setSize(491, 363); 
    this.add(getTextField(), null); 
    this.add(getButton(), null); 
    this.add(getJScrollPane(), null); 
    this.addWindowListener(new java.awt.event.WindowAdapter() { 
    public void windowClosing(java.awt.event.WindowEvent e) { 
    System.out.println("windowClosing()"); // TODO Auto-generated Event stub windowClosing()
    tt.dispose();

    }); 
    }  private TextField getTextField() { 
    if (textField == null) { 
    textField = new TextField(); 
    textField.setBounds(new Rectangle(21, 51, 354, 31)); 

    return textField; 
    }  /** 
     * This method initializes button 
     * 
     * @return java.awt.Button 
     */ 
    private Button getButton() { 
    if (button == null) { 
    button = new Button(); 
    button.setBounds(new Rectangle(387, 50, 84, 34)); 
    button.setLabel("搜索"); 
    button.addMouseListener(new java.awt.event.MouseAdapter() { 
    public void mouseClicked(java.awt.event.MouseEvent e) { 
    test(); 

    }); 

    return button; 
    }  private JScrollPane getJScrollPane() { 
    if (jScrollPane == null) { 
    jScrollPane = new JScrollPane(); 
    jScrollPane.setBounds(new Rectangle(23, 97, 447, 251)); 
    jScrollPane.setViewportView(getJTable()); 

    return jScrollPane; 

    private JTable getJTable() { 
    jTable.setModel(dt); 
    jTable.setRowHeight(20); 
    jTable.setRowSelectionAllowed(true); 
    jTable.setSelectionBackground(Color.lightGray); 
    jTable.setSelectionForeground(Color.white); 
    jTable.setGridColor(Color.black); 
    jTable.setShowGrid(true); 
    jTable.setShowHorizontalLines(true); 
    jTable.setShowVerticalLines(true); 
    jTable.setBackground(Color.white); 
    return jTable; 
    }  public void test() 

    try 
    {   Connection conn; 
    Statement stmt;  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=loans"; 
    String user="huyang"; 
    String password="111111"; 
    conn = DriverManager.getConnection(url,user,password); 
    CallableStatement cstmt = conn.prepareCall("{call dbo.pp_IDEditorGetData(?,?,?,?,?)}");  cstmt.setInt(1,4); 
    cstmt.setString(2,null); 
    cstmt.setString(3,null); 
    cstmt.setString(4,null); 
    cstmt.setObject(5, 0);  ResultSet rs = cstmt.executeQuery();  ResultSetMetaData rsmd = rs.getMetaData(); 
    int numberOfColumns=rsmd.getColumnCount(); 
    int b=1; 
    System.out.println(numberOfColumns); 
    while(b <=numberOfColumns) 
    {  
    dt.addColumn(rsmd.getColumnName(b)); 
    b++; 

    while(rs.next()) 

    Vector newRow; 
    while(rs.next()) 

    newRow=new Vector(); 
    int c=1; 
    while(c <=numberOfColumns) 

    newRow.addElement(rs.getString(c)); 
    c++; 

    dt.addRow(newRow); 


    }  
    catch(Exception e) 

    e.printStackTrace();