[英]Swing JList and DefaultListModel.
如何獲得選定的物品?
我的代碼中有一個簡單的要求:我需要獲取一個選定的項以實現啟用JButton
的ActionListener
。
public class Tela extends JFrame{
private static final long serialVersionUID = 1L;
private DefaultListModel<String> model;
private JList<String> list;
public Tela(){
setTitle("Maquina de Refrigerante");
String labels[] = { "Coca-Cola", "Fanta Laranja", "Fanta-Uva",
"Sprite"};
//Cria os Paineis no Frame
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
JPanel leftPanel = new JPanel();
JPanel rightPanel = new JPanel();
JPanel downPanel = new JPanel();
leftPanel.setLayout(new BorderLayout());
rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.Y_AXIS));
list = new JList<String>(labels);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
JScrollPane pane = new JScrollPane();
pane.getViewport().add(list);
leftPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
leftPanel.add(pane);
final JButton comprar = new JButton("Comprar");
comprar.setEnabled(false);
rightPanel.add(comprar);
rightPanel.add(Box.createRigidArea(new Dimension(0,4)));
rightPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20));
panel.add(leftPanel);
panel.add(rightPanel);
panel.add(downPanel);
add(panel);
setSize(450, 350);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
comprar.addActionListener(new Paga());
}
}
我想實現一個ActionListener
,使該項目處於選中狀態,然后啟用jbutton("Comprar")
,但是目前我還不知道要這樣做。
getSelectedIndex()
和getSelectedIndices()
將給出所選項目的索引
除了MadProgrammer的答案之外,最好使用偵聽的ListSelectionListener
來偵聽選擇狀態更改事件。 JList
負責偵聽選擇模型中的選擇狀態更改,並將每個更改通知給指定的偵聽器。 如下使用它:
jList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent evt) {
selectedValues = jList1.getSelectedValuesList();
// it will return a list of values
//evt.getFirstIndex() - the index of last selected item
//evt.getLastIndex() - the index of current selected item
}
});
您可以使用JList#getSelectedValue
返回當前選擇的項目。
查看如何使用按鈕和如何編寫動作監聽器,以獲取有關將動作監聽器注冊到按鈕的更多詳細信息,以及如何使用列表以獲取有關使用JList
的詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.