你在B中生成一个public方法如getTableValue();
双击B中Table时把信息存到一个B的一个域(变量)里,然后在A中用getTableValue来取得这个要传过来得值。你可以直接用B的实例名,和句柄差不多。

解决方案 »

  1.   

    能具体点吗,A中怎么知道B查没查出结果呢,也就是这个值什么时候传过来不一定呢。A怎么实现一直等待B中的结果? 
    这是两个窗口,不像对话框那样。
      

  2.   

    假设A中有一个方法A1用来从 B中取得信息,然后执行某个动作。B中有一个setBInfo()方法,用来设置B的信息。
    B中有一个getBInfo()方法,返回B的信息。当双击B中的查询结果时,先掉用B的setBInfo()方法,给B赋值,然后再调用A.A1()方法,A.A1()方法调用B.getBInfo()得到查询的信息,然后做下一步动作。都是事件驱动的。能看明白么?
      

  3.   

    你说是类方法还是对象方法吗,不好意思我java的基础不好……
    我想知道怎么处理A和B的关系,其实是有一大堆类似A的窗口要调用B做详细查询;
    我只会new一个界面,怎么能调用已有的实例化的窗口对象的方法呢,
    A调用B出来我都不知道怎么能再B中找到A。public class A{
    ……
     void Querydetail_actionPerformed(ActionEvent e) {
          B frame=new B();
                                                      }}
      

  4.   

    应该是这么写的public class A extends JFrame {
    ……………
    //调出界面B
     void Querydetail_actionPerformed(ActionEvent e) {
          B frame=new B();
                                                      }//
    public class B extends JFrame {……
    //响应查询按钮
      void jButton1_actionPerformed(ActionEvent e) {
    ……
    displaytable();
                                                        }
    }
      

  5.   

    下面做一个参考import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public  class test extends JFrame{
      public test()
      {
        A1 a=new A1();
        B1 b=new B1(a);
        a.show();
        b.show();
      }
      public static void main(String[] args) {
        test test1 = new test();
      }
    } class A1 extends JFrame
    {
       BorderLayout borderLayout1 = new BorderLayout();
       JTextField t1=new JTextField();
       public A1()
       {
         super("I am A");
         setSize(200,300);
         setVisible(true);
         this.getContentPane().setLayout(borderLayout1);
         t1.setSize(50,20);
         this.getContentPane().add(t1,borderLayout1.NORTH);
       }   public void Amethod(String st)
       {
         t1.setText(st);
       }}class B1 extends JFrame
    {
       BorderLayout borderLayout1 = new BorderLayout();
       JButton jb=new JButton("Click Me");
       private String info;   public B1(A1 a)
       {
         super("I am B");
         final A1 ba=a;
         setSize(150,200);
         setVisible(true);
         this.getContentPane().setLayout(borderLayout1);
         jb.setSize(30,20);
         this.getContentPane().add(jb,borderLayout1.NORTH);
         jb.addActionListener(new ActionListener ()
         {
           public void actionPerformed(ActionEvent e) {
             ba.Amethod(getBInfo());
           }
         }
         );
       }
       public String getBInfo()
       {
          return "I am from B";
        }
    }
      

  6.   

    test 的用法可能可行, 但我是在A运行以后在A里调用B的,能否把这个方法写一下?
      

  7.   

    赞同上面的CoolAbu(阿卜-Never Stop(★★★★)) ,呵呵
      

  8.   

    是啊,但是我就是不知道类A实例化后怎么在A的方法里把自己作为参数传给B 
       
                 B1 b=new B1(a);          吗?
    但是A自己没法实例化自己啊
      

  9.   

    可以在A方法里用
    B1 b=new B1(this)把自己传过去,但要注意不要造成重复递归。
      

  10.   

    高,实在是高!
     可是我有一大堆类似A的窗口要调用B做详细查询;
     public B1(A1 a) 这种声明好像不行,改成public B1(JFrame a)又提示找不到
     ba.Amethod(getBInfo()) 方法;怎么处理呢?现在程序框架已经确定,只能做局部调整,苦恼ing……
      

  11.   

    还有,table中鼠标双击事件怎么写,谢谢!