如何从getSelectedIndex()存储临时值并在另一个方法中使用存储的值?

时间:2014-05-23 02:59:25

标签: java

请看一下这张照片:

Selecting a unit that will become another unit's prequisite

因此,当选择单位并且用户点击“添加先决条件”按钮时,选择的任何单位将被存储到另一个名为“ UnitClass”的类中的临时实例变量中

将显示一条消息,要求用户选择另一个单位,以便将存储的值传递到单位的先决条件中:

unit details

应该发生的事情是,单位商业信息系统简介单元先决条件现在应该是“测试代码”(测试名称的单元代码是测试代码)

该实例变量名为“temp”,数据类型为String。

所以这就是我的尝试: 的 UnitClass

public void storeUnitPrerequ( String a )
    {
        this.temp = a;
    }

    public String addUnitPrerequ()
    {        
        this.newUnitPrerequ = temp;

        return newUnitPrerequ;    
    }

GUI类

JOptionPane.showMessageDialog( new JFrame() , "Please select a unit to add prequisite." );                                                            

link.storePrerequisite( displayUnitListPane.getSelectedIndex() );

JOptionPane.showMessageDialog( new JFrame() , "Now please select where you want the unit you just selected to be a prequisite" );

displayUnitListPane.clearSelection();

link.addPrerequisite( displayUnitListPane.getSelectedIndex() );

JOptionPane.showMessageDialog(new JFrame(), "Prerequisite Added!");

link.saveUnit();    

link.storePrerequisite()link.addPrerequisite()link.saveUnit()都来自另一个名为“应用”的控件类

应用类:

public void storePrerequisite( int index )
{
    UnitArray.get(index).storeUnitPrerequ( UnitArray.get(index).getUnitCode() );
}

public void addPrerequisite( int index )
{
    UnitArray.get(index).setUnitPrerequ( UnitArray.get(index).addUnitPrerequ() );
}

单击此按钮时,我会收到indexoutofbounds错误 - 我知道该错误的含义。但那怎么可能呢?

1 个答案:

答案 0 :(得分:1)

在致电displayUnitListPane.clearSelection()之前,您正在使用link.addPrerequisite清除选择。这可能就是问题所在。

您可以将选区存储在变量中并使用它。

int selection = displayUnitListPane.getSelectedIndex();
link.storePrerequisite( selection );

JOptionPane.showMessageDialog( frame , "Now please select where you want the unit you just selected to be a prequisite" );

displayUnitListPane.clearSelection();
link.addPrerequisite ( selection );