【问题标题】:accessing component from another class java从另一个类 java 访问组件
【发布时间】:2014-04-06 03:18:37
【问题描述】:

所以我试图从名为 Calculator 的类中访问 JComboBox。 JComboBox 本身位于一个方法中,并且位于另一个名为 GUI 的类中的 JPanel 中。 谢谢。

这是我的代码

public class GUI {
public static JFrame MainFrame(){

//the endless code

frame.add(konvpanel();

return frame;

}

public static JPanel konvpanel(){
    JPanel a = new JPanel();

String [] itembox = {"...","XXX","===","|||"};
        JComboBox nnn = new JComboBox(itembox);

a.add(nnn);

return a;
  }
}

提前致谢。

【问题讨论】:

    标签: java swing class components


    【解决方案1】:

    您无法访问nnn,因为该reference 不存在于该方法的范围之外。 所以你有两个选择:

    • 在别处放置对组合框的引用,例如作为实例变量或(哎哟)静态变量
    • 尝试定位框架内的面板和面板内的组合框(例如,通过获取所有子项并检查其类型和位置)。

    我会选择选项一。

    另一个选项,取决于为什么您需要访问组合框,可能是向组合框添加一个侦听器,并向该侦听器添加对Calculator 实例的引用。然后,每当您注册的事件被触发时,您就会将该信息传递给计算器。

    【讨论】:

      【解决方案2】:

      在您访问JComboBox 的情况下,将其声明如下。

      public class GUI {
        public static JComboBox nnn;
        public static JPanel konvpanel(){
           JPanel a = new JPanel();
      
          String [] itembox = {"...","XXX","===","|||"};
          nnn = new JComboBox(itembox); /*refer the previously declared variable*/
      
          a.add(nnn);
      
         return a;
        }      
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        • 2012-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多