对于Java学期的最终项目,我们正在进行战斗模拟。我的一个合作伙伴让我相信,一个GUI是一个好主意,到目前为止,除了一件事外,它的工作进展顺利。我希望最终用户能够点击组合框来选择一件事物,并允许它显示在窗口底部的标签中,并且我很擅长这一部分。但是,一旦用户从组合框中选择,我希望他们能够改变他们的选择。我知道有一个选择允许多选,但我更多的是寻找一个互相排斥的东西,而不是能够选择两个。绝不是我的代码完成,但这里的一些吧:从组合框中选择并重新选择
public void setHair()
{
//Hair Options for both size and color displayed in a window
window.setSize(400,400);
window.setDefaultCloseOperation(window.EXIT_ON_CLOSE);
window.setTitle("Hair Options");
window.setLayout(new BorderLayout());
window.setVisible(true);
window.setAlwaysOnTop(true);
buildHairColorPanel();
window.add(colorPanel);
window.add(scrollPane);
buildLengthPanel();
window.add(lengthPanel);
}
而这里的构建方法:
private void buildLengthPanel()
{
lengthList = new JList(hairLengths);
lengthList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lengthList.addListSelectionListener(new ListListener());
lengthList.setVisibleRowCount(6);
scrollPane = new JScrollPane(lengthList);
lengthPanel.add(scrollPane);
lengthPanel.add(colorList);
}
private void buildHairColorPanel()
{
colorList = new JList(hairColors);
colorList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
colorList.addListSelectionListener(new ListListener());
colorList.setVisibleRowCount(6);
scrollPane = new JScrollPane(colorList);
colorPanel.add(scrollPane);
colorPanel.add(colorList);
}
我知道这是一个语法的事情,或者我需要改变一个设置,但我无法找到关于如何在我的教科书中做到这一点的参考资料,并且似乎无法将我的问题缩小到足以找到对其的引用。
顺便说一句,所有18个选项对于颜色而言都是可见的,而不是我试图通过添加一个滚动条来设置它的六个选项(并且滚动窗格也不显示),但这不是我的主要问题,我会很感激它的信息,如果它是快速指出要解决的问题。
啊,忘了我不得不写这与它去太:
public class ListListener
implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
String selection = (String) colorList.getSelectedValue();
selectedColor.setText(selection);
}
}
有一件事我到目前为止已经注意到,在'lengthPanel下。add(colorList);'你可能的意思是增加'lengthList'。 – DoubleDouble
哈!谢谢。现在纠正。 –
Oye。现在只有一个组合框出现,而不是在调试时显示它们。 –