Java 如何访问不同窗体中控件public class frmApp {
 
   public JList jList = new JList();
   ....  
   
   public static void main(String[] args) {   }
}public class ScrollPane extends JPanel {   private UpdateList(){       ....怎样访问 frmApp 的 jList .....   }  }谢谢大家!

解决方案 »

  1.   

    1.把 jList 写成 static 的。
    2.在ScrollPane类构造的时候,把frmApp类以参数传入,就可以访问所有Public的变量,不过建议写一个public的方法来提供jList;
      

  2.   

    “不过建议写一个public的方法来提供jList”
    能给例子吗?
      

  3.   

    是在同意一个包里吗
    frmApp newview =new frmApp();
    newview.jList定义一个frmApp类的实例,用"实力.属性",不就能用了吗?
      

  4.   

    我写了方法   public void UpdateList(frmApp app1){
    app1.jList..... }没有问题。 可是怎样调用呢?
      
       UpdateList( ? );    
      

  5.   

    把JList   jList作为UpdateList()的一个参数,
    写成UpdateList(JList   jList)就可以了
      

  6.   

    楼上没有搞清楚,UpdateList();  的调用是在public   class   ScrollPane   extends   JPanel   {      private   void   UpdateList(frmApp   app1){ 
                  app1.jList....这里没有问题.... 
         } 
         
         private  void Setdata(){
                  UpdateList( ->? );
         }
        
    } public   class   frmApp   { 
      
          public   JList   jList   =   new   JList(); 
          ....     
          
          public   static   void   main(String[]   args)   {       } 
    } 我没有成功,请说明 ->? 中的参数 在那里声明?
      

  7.   

    如果在 public  class   ScrollPane  extends  JPanel  {  
              frmApp   newview   =new   frmApp(); 
              newview.jList 
         }
        
    中调用 ,那岂不是生成了一个new frmApp ,这样,系统开销不是很大吗?
    我的ScrollPane  extends  JPane,但是是在      public class frmApp   { 
          
              private ScrollPane spane ;
             
         }
    中布局的, 我在 public class ScrollPane extends JPanel {               } 
    中,没有必要  frmApp newview = new frmApp(); 吧!
      

  8.   

    public class MyFrm extends JFrame{
             jLable   obj1=new jLable();
             .........}class MyFrm1 extends JFrame{
         private static JFrame workFrm;
         public void setWorkFrm(JFrame objFrm){
             workFrm=objFrm;
         }
         public void workFrm(){
            workFrm.obj1.setText("yes");
         }}