class Global()
{
  public static String str;
  ....
}
在A中new一个Global类,在B中修改,这是不是你想要的?

解决方案 »

  1.   

    public class A extends JDialog {
        private B b;
        private JButton button;
        private ArrayList list;
       private class B extends JDialog
        {
            //添加成员和组件(JTextField,JButton等) 
       //添加 get()和 set()函数以提供一个得到数据的接口
       ...
        }
        public A()
        {
          button.addActionListener(new ActionListener()
           {
           public void actionPerformed(java.awt.event.ActionEvent e)
           {
           b=new B();
           b.show();
           }
           });    
           b.addWindowListener(new java.awt.event.WindowAdapter() { 
    public void windowClosing(java.awt.event.WindowEvent e) {    
     //利用b中函数将b中数据传到a 中的arraylist
    }
        });
           //添加其他成员和组件
             ...
        }
    }
      

  2.   

    不一定要用Inner class
    A对话框的某个方法new一个B 对话框,同时往给B传递参数(例如传入一个哈希表),B对话框关闭前给传入的参数赋值,然后返回给A,A根据返回的参数对table进行刷新就可以了
      

  3.   

    使用A的属性吧
    然后传对象A进去,使用set/get方法来进行。
      

  4.   

    我个人的想法是如果B填写的信息比较少的话,那么楼上说的都很好。
    但如果填写的信息比较多,可以把信息封装成单独一个类,一个singleton类,那么在A和B对话框中均可引用这个类,读取此singleton类的信息。
      

  5.   

    用代码说明一下我的思路吧
    class A extends xxx_dialog {
        //private HashTable ht;  //可以声明为属性,或者声明为局部变量
        ...
        public void xxx_callotherdlg() {  //A的某个方法,调用另一对话框
            HashTable ht = new HashTable();  //哈希表变量,也可以声明为A的某个属性,在此用局部变量
            B b_dlg = new B(ht);  //把哈希表传给B
            ...
            //根据返回的哈希表ht刷新table
            
        }
    }class B extends yyy_dialog {
        private HashTable ht;
        ...
        public B(HashTable ht) {  //构造器,传入参数
            this.ht = ht;
        }    //之后可以随意操作ht
    }这样的话A,B都相对比较独立,利于扩展