Как посмотреть, что выбрало использование из 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);
}

}

Другие вопросы по тегам