對於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。現在只有一個組合框出現,而不是在調試時顯示它們。 –