很简单,是你想多了,处理按钮事件的时候直接将另一个panel中的textfield中的内容改变就行了,因为这两个panel都在同一个frame上,因此并不存在通信问题。

解决方案 »

  1.   

    我的两个panel分别在不同的文件里面阿,直接引用得到下面的错误:"BottomPanel.java": cannot resolve symbol: variable centerPanel in class com.borland.samples.welcome.BottomPanel at line 63, column 19
    如果处理阿
      

  2.   

    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;public class MyFrame extends Frame implements ActionListener
    {
         TextField field;

    public MyFrame(String str){
    super(str);
    setBounds(300,300,140,180);
    this.setBackground(Color.gray);

    Panel p1=new Panel();
    p1.setLayout(null);
    Panel p2=new Panel();
    p2.setLayout(null);
    Panel p3=new Panel();
    p3.setLayout(null);
    field= new TextField();
    Button b1=new Button("click me");
    b1.addActionListener(this);

    b1.setBounds(0,0,100,25);
    field.setBounds(0,0,100,25);
    p2.add(b1);
    p3.add(field);
    p2.setBounds(10,10,120,30);
    p3.setBounds(10,50,120,30);
    p1.add(p2);
    p1.add(p3);
    add(p1);

    addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
       System.exit(0);
    }
     }
       );       
    setVisible(true);
    } public static void main(String args[])
    {
    MyFrame fr=new MyFrame("test");
    }

    public void actionPerformed(ActionEvent e) 
    {
    field.setText("dfdjgfjdgl");
    }
    }
      

  3.   

    java中可以通过构造方法或其它方法来传递对象(类实例、其它类对象...)...public class MyFrame extends Frame implements ActionListener
    {
         MyButtonPanel mbpanel;
         MyTextFieldPanel mtfpanel;
         MyOtherPanel mopanel;
         
         public MyFrame(){
    mbpanel = new MyButtonPanel(this);
    mtfpanel = new MyTextFieldPanel();
    mopanel = new MyOtherPanel();
         }     //在MyButtonPanel按钮事件发生时调用这个方法
         public void ChangeMyTextFieldPanel(String strContent){
    mtfpanel.改变文本框值方法(strContent);
         }     ...
    }