[英]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.