在两个类,A类和B类。 
在A类中声明了一个方法为getLevel(),在B类中调用时获得不了想要的正确的结果。 
部分代码: 
A类中的getLevel()方法: 
public int getLevel(){ 
level=xxxJComboBox.getSelectedIndex()+1; 
return level; 

在B类中的调用: 
public synchronized void xxx(int xx){ 
myCtr=new MyBlockJFrame(); // 初始化A类对象,前已声明 
...... 
// System.out.println(myCtr.getLevel()); 
switch(myCtr.getLevel()){ 
case 4: 
case 5:......;break; 
case 6:......;break; 
default:......; 

...... 大体结构就是这样了。在执行System.out.println(myCtr.getLevel());语句输出时窗口显示为1,但在A类中改变了Level值后,在B类中得到的myCtr.getLevel());值仍为1。既总执行default语句。 
我在A类中也声明了B类的对象,听别人说这样做不好,但我看一些例子的时候也有这样互相调用的,所以不知道是不是这里的问题。 
我写得比较乱,不知道名位看明白没有,有什么问题可以跟贴,我会补充。本人为初学者,望大家帮助。

解决方案 »

  1.   

    我想问下你怎么改变的level的值?xxxJComboBox是什么,是A类的一个属性么??
      

  2.   

    是一个控件呀(JComboBox).
    当用户点击该控件后,用getSelectedIndex()方法获得所选择的级别。
    然后把它的值赋给Level。我说得不太清楚,不知道大家看明白没有。
    有问题的话请跟贴,谢谢!
      

  3.   

    单从给出的一段程序上看,好像没什么问题。建议你DEBUG下,看看xxxJComboBox.getSelectedIndex()的值是不是正确得到了。