java - 如何使用列表中选定的值?

标签 java swing jbutton jlist

我目前已经创建了一个多间隔选择 JList,并且我希望能够对选择进行一些操作。目前,我的代码只能创建一个 JList,我可以在其中“突出显示”选定的对象;但是,我想要做的是将选定的对象放入 Array 或 ArrayList 中,以便我可以对这些对象执行一些操作。我在网上搜索并找到了 getSelectedValueList() ,但我真的不知道如何使用和访问它以供以后使用。

我的另一个问题是,我正在考虑创建一个名为“Submit”的 JButton,但我想知道我应该如何处理带有 JList 的窗口。我应该让它在按下按钮后退出吗?

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import java.util.List;

    public class ClassSelection extends JFrame {
         private JList classList;
         private String[] classNames = {"Programming Foundations I", 
         "Programming Foundations II",
         "Digital Design", "Computer Organization", "Programming 
         Paradigms", 
         "Honors Programming Paradigms", "Cluster Computing", 
         "Software Engineering"};

     public ClassSelection() {
         super("Classes Taken:");

         Container container = getContentPane();
         container.setLayout(new FlowLayout());

         classList = new JList(classNames);
         classList.setVisibleRowCount(5);
         classList.setFixedCellHeight(45);
         classList.setFixedCellWidth(450);

classList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTIO N);

         container.add(new JScrollPane(classList));
         setSize(600, 600);
         setVisible(true);

    }

    public static void main(String[] args) {
         ClassSelection application = new ClassSelection();
    }
}

最佳答案

请参阅下面的我的代码。它包含您的要求。

第二个问题的代码正如你所说。

"Should I make it exit after the button is pressed?"

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;

public class ClassSelection extends JFrame {
    private JList classList;
    private String[] classNames = {"Programming Foundations I",
            "Programming Foundations II",
            "Digital Design", "Computer Organization", "Programming Paradigms",
            "Honors Programming Paradigms", "Cluster Computing",
            "Software Engineering"};

    public ClassSelection() {
        super("Classes Taken:");

        Container container = getContentPane();
        container.setLayout(new FlowLayout());

        classList = new JList(classNames);
        classList.setVisibleRowCount(5);
        classList.setFixedCellHeight(45);
        classList.setFixedCellWidth(450);
        classList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        JScrollPane jScrollPane = new JScrollPane(classList);

        // First question
        List<String> myList = new ArrayList<>();

        classList.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                super.mouseClicked(e);
                JList jList = (JList) e.getSource();
                String className = (String) jList.getSelectedValue();
                myList.add(className);
                System.out.println("clicked : " + className);

                // you can see the items being appended
                System.out.println("list : " + myList.toString());
            }
        });

        // Second question
        JButton btn = new JButton("Submit");
        btn.addActionListener(event -> {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            dispose();
        });

        container.add(jScrollPane);
        container.add(btn);
        setSize(600, 600);
        setVisible(true);
    }

    public static void main(String[] args) {
        ClassSelection application = new ClassSelection();
        application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

关于java - 如何使用列表中选定的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54694908/

相关文章:

Java:日期操作

java - 在 Android 中反转十六进制颜色

java - 将图像添加到 JButton

java - 菜单按钮不起作用?

java - 内存游戏一些问题

java - JFrame 和 JPanel 分离有问题吗?

java - SecurityException 在 OS X 上从 Java 发送广播

java - 找不到符号“上下文”,android.content.Context

java - 为什么我的 JTable 没有出现?

java - JButton 不工作