簡體   English   中英

擺動JList和DefaultListModel。

[英]Swing JList and DefaultListModel.

如何獲得選定的物品?

我的代碼中有一個簡單的要求:我需要獲取一個選定的項以實現啟用JButtonActionListener

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM