Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JList表中未选中的项目设置为setEnable(错误)_Java_Jlist - Fatal编程技术网

Java 将JList表中未选中的项目设置为setEnable(错误)

Java 将JList表中未选中的项目设置为setEnable(错误),java,jlist,Java,Jlist,我在更改JList表中未选择的选项以将其设置为setEnable(false)时遇到困难。接收值的方法是一个ActionListener按钮方法,按下该按钮后,将从JList接收所选值。以下是方法,而buildEnemySelectionPanel()方法正在使用适当的JPanel创建JList,以供以后放置: private String[] enemies = {"Goblin", "Skeleton"}; private void buildEnemySelectionPanel() {

我在更改
JList
表中未选择的选项以将其设置为
setEnable(false)
时遇到困难。接收值的方法是一个
ActionListener
按钮方法,按下该按钮后,将从
JList
接收所选值。以下是方法,而
buildEnemySelectionPanel()
方法正在使用适当的
JPanel
创建
JList
,以供以后放置:

private String[] enemies = {"Goblin", "Skeleton"};

private void buildEnemySelectionPanel()
{
    enemyPanel = new JPanel();
    enemyListPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
    enemyListPanel.setPreferredSize(new Dimension(180, 85));
    enemyListPanel.setBackground(Color.WHITE);
    enemyPanel.setLayout(new BoxLayout(enemyPanel, BoxLayout.Y_AXIS));

    enemyList = new JList(enemies);

    enemyList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    enemyList.addListSelectionListener(new EnemyListListener());
    enemyListPanel.add(enemyList);
    enemyPanel.add(enemyListPanel);
}
public void actionPerformed(ActionEvent e)
{
    if (e.getActionCommand().equals("Select Enemy"))
    {
        indexEnemy = enemyList.getSelectedIndex();
        indexEnemyWeapon = weaponList.getSelectedIndex();
      /* 
         here is where I'm having problems
       */
    }
}
到目前为止,我已经尝试从
JList
中获取所有项目,并将它们与我发送到
JList
的原始
String[/code>项目的引用进行匹配,分析索引,如果它们不匹配,则设置为false。不幸的是,正如大家可能都很清楚的那样,由于
JList
实际上不是一个列表,因此出现了编译错误。以下是我在上述方法中尝试使用的
for
循环的示例:

for(int x = 1; x < enemyList.length(); x++)
{
    if (!(enemies[x] == indexEnemy))
    {
        enemyList[x].setEnable(false);
    }
}
for(int x=1;x
我已经阅读了一些示例中的(试图链接“setEnable”),但似乎没有建立联系


理想情况下,我希望发生的是,当我的按钮的
ActionEvent
被触发时,我的
JList
中所有未选择的选项都将被禁用。我理解最终用户仍然可以改变主意,做出不同的选择。但我仍然希望获得一些帮助,帮助我如何将
JList
中未选择的项目设置为
false
,如果它们不是我上面方法中的
索引项。

JList是什么?您在JList中存储了哪些数据?这些值是否有setEnabled方法?@MadProgrammer我添加了代码来显示包含
JList-enemyList
的方法。至于你关于
setEnabled
方法的问题,没有。我没有这样的方法,但希望能举一个例子说明如何实现这种类型的方法。很明显,
字符串
未启用
设置
method@MadProgrammer我非常感谢您的帮助,但我也希望您能提供更多的信息或帮助?如果我知道如何处理这件事,我早就知道了!呵呵
private String[]敌人={“地精”,“骷髅”}
因此
JList
中的数据是
String
s,而没有
setEnabled
方法。您需要定义一种不同的数据类型来支持您的目标,并且可以使用
ListCellRenderer
来支持数据类型的状态。请查看以了解更多详细信息