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
来支持数据类型的状态。请查看以了解更多详细信息