从另一个java类访问组件
因此,我试图从名为Calculator的类访问JComboBox。JComboBox本身位于一个方法中,并位于另一个名为GUI的类的JPanel中。 谢谢 这是我的密码从另一个java类访问组件,java,swing,class,components,Java,Swing,Class,Components,因此,我试图从名为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 =
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;
}
}
提前感谢。您无法访问
nnn
,因为该引用不在该方法的范围之外。
所以你有两个选择:
- 将对combox的引用放在别处,例如作为实例变量或(哎哟)静态变量
- 尝试在框架内定位面板,在面板内定位组合框(例如,获取所有子项并检查其类型和位置)
根据需要访问组合框的原因,另一个选项可能是向组合框添加一个侦听器,并向该侦听器添加对
计算器
实例的引用。然后,每当您注册的事件被触发时,您都会将该信息传递给计算器。在您的情况下,要访问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;
}
}