gpt4 book ai didi

java - 如何在不使用按钮的情况下从 JList 中选择项目?

转载 作者:行者123 更新时间:2023-11-30 03:24:42 26 4
gpt4 key购买 nike

我一直在编写一个程序,其中一部分是能够从 JList 中选择一个项目,并让它在 JLabel 中显示特定的图标。我已经使它工作,以便用户必须从列表中选择项目,然后按按钮来启动操作。

我只是想知道是否有什么方法可以让这个按钮变得不必要?换句话说,用户只需单击列表项即可立即启动操作。

最佳答案

这是我的代码:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class Example extends JFrame
{
JList list = null;

Example()
{
Container cp = getContentPane();

cp.setLayout(new FlowLayout());
ArrayList data = new ArrayList();

data.add("Py");
data.add("Piper");

list = new JList(data.toArray());

list.addListSelectionListener(new ListSelectionListener()
{

public void valueChanged(ListSelectionEvent evt)
{
// To avoid double value selected
if (evt.getValueIsAdjusting())
return;
System.out.println("Selected: " + list.getSelectedValue());
}

});

cp.add(new JScrollPane(list), BorderLayout.CENTER);
}

public static void main(String[] s)
{
Example l = new Example();
l.pack();
l.setVisible(true);
}
}

所以就在这里:

list.addListSelectionListener(new ListSelectionListener() 
{

public void valueChanged(ListSelectionEvent evt)
{
// To avoid double value selected
if (evt.getValueIsAdjusting())
return;
System.out.println("Selected: " + list.getSelectedValue());
}

});

因此,您实际上要做的是将 ListSelectionListener“插入”到您的 JList,以便可以收到 JList 发生的任何事件的通知。在 valueChanged 中,您添加当用户在 JList 中选择某些内容时需要执行的代码。

关于java - 如何在不使用按钮的情况下从 JList 中选择项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com