Мне было интересно, есть ли способ, выбрав элемент с помощью JList, чтобы программа выполняла какой-то код. Этот код должен запускаться каждый раз при выборе нового элемента.JList Выбор позиции
Раньше я добавил слушателя. Вот минимальный пример, который я сделал.
public class Driver {
public static void main(String[] args) {
JFrame frame = new ListFrame();
frame.setVisible(true);
frame.setSize(200,100);
}
}
public class ListFrame extends JFrame {
private JList<String> list;
private JScrollPane scrollPane;
private String[] data = {"A","B","C"};
private JButton addButton = new JButton("Add");
public ListFrame() {
setLayout(new BorderLayout());
list = new JList<String>(data);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollPane = new JScrollPane(list);
add(scrollPane, BorderLayout.CENTER);
add(addButton, BorderLayout.SOUTH);
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
String newEntry = JOptionPane.showInputDialog("Add new entry.");
String[] tempData = new String[data.length + 1];
for(int i = 0; i < data.length; i++)
tempData[i] = data[i];
tempData[data.length] = newEntry;
data = tempData;
list = new JList<String>(data);
scrollPane.setViewportView(list);
}
});
list.addListSelectionListener(
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
System.out.println("Hi");
}
});
}
}
Однако, когда я нажимаю элемент в Jlist, ничего не печатается.
Google это приятель. Вы получите тонны ссылок –
См. [Как написать List List Listener] (http://docs.oracle.com/javase/tutorial/uiswing/events/listselectionlistener.html) и [Как использовать списки] (http: //docs.oracle.com/javase/tutorial/uiswing/components/list.html) для получения дополнительной информации – MadProgrammer
Я обновил свой вопрос с дополнительной информацией. Я уже попробовал прослушиватель списка. – Halbort