0
ActionListener를 사용하여 JList에서 값을 가져오고 싶습니다. 사용자가 색인을 선택하고 선택한 색인을 업데이트하면 업데이트 된 값을 가져오고 싶습니다.JButton없이 JList에서 값 가져 오기
버튼을 누르지 않고 어떻게 할 수 있습니까? JList에 ActionListener를 추가하고 싶습니다.
ActionListener를 사용하여 JList에서 값을 가져오고 싶습니다. 사용자가 색인을 선택하고 선택한 색인을 업데이트하면 업데이트 된 값을 가져오고 싶습니다.JButton없이 JList에서 값 가져 오기
버튼을 누르지 않고 어떻게 할 수 있습니까? JList에 ActionListener를 추가하고 싶습니다.
아니, 당신은 정말 JList에 더버튼을 누르지 않고 어떻게 할 수 있습니까? JList에 ActionListener를 추가하고 싶습니다.
addActionListener(...)
방법이 없기 때문에 그이 허용되지 않기 때문에하는 JList에 "ActionListener를 추가"하고 싶지 않아,하지만 당신은 하나
리스너 추가해야하고, 할
JList tutorial 또는 JList API을 찾아 보면 쉽게 찾을 수 있습니다. 가장 좋은 옵션은 ListSelectionListener입니다.
유용한 자원 :
:
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
@SuppressWarnings("serial")
public class ListListenerDemo extends JPanel {
private static final String[] LIST_DATA = { "Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday" };
private JList<String> list = new JList<>(LIST_DATA);
public ListListenerDemo() {
list.setVisibleRowCount(4);
// add the ListSelectionListener to our JList
list.addListSelectionListener(new MyListListener());
JScrollPane scrollPane = new JScrollPane(list);
add(scrollPane);
}
// here's our ListSelectionListener
private class MyListListener implements ListSelectionListener {
@Override
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
JList<String> lst = (JList<String>) e.getSource();
String selection = lst.getSelectedValue();
if (selection != null) {
JOptionPane.showMessageDialog(list, selection, "Selected Item",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
private static void createAndShowGui() {
ListListenerDemo mainPanel = new ListListenerDemo();
JFrame frame = new JFrame("ListListenerDemo");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> createAndShowGui());
}
}