Как посмотреть, что выбрало использование из JList?
Недавно я работал над программой Java Jukebox. Пока что в этой программе пользователь выбирает песню из JList и нажимает кнопку "Play" JButton. Мне нужно, чтобы программа выяснила, какой выбор был выбран из списка, а затем запустила соответствующий конструктор. Любые предложения о том, как это сделать?
-John
3 ответа
Взгляни на JList#getSelectedIndex
и / или Jlist#getSelectedIndices
который скажет вам, что в данный момент выбрано.
И посмотрите на Как использовать списки для более подробной информации
Взгляни на JList
"s getSelected
методы, в частности getSelectedValue()
а также getSelectedValues()
,
Вот код:
package box.java.juke.airtime;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.ListSelectionModel;
public class JukeBox {
public static final int WIDTH = 300;
public static final int HEIGHT = 400;
public static final String NAME = "Java JukeBox";
public static void main(String[] args) {
JFrame j = new JFrame(NAME);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setSize(WIDTH, HEIGHT);
j.setVisible(true);
j.setLocationRelativeTo(null);
String[] songs = { "Cipher", "Flight", "To the Stars",
"Last Train to Paradise", "Surge" };
@SuppressWarnings({ "unchecked", "rawtypes" })
JList list = new JList(songs);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
j.add(list);
System.out.println(list.getSelectedValue());
JButton b = new JButton();
b.setText("Play");
j.getContentPane().add(BorderLayout.SOUTH, b);
j.setResizable(false);
}
}