查找JList的选定项目并实时显示
问题内容:
我有一个JList
,我正在显示一些ID。我想捕获用户单击的ID并将其显示在上JLabel
。
String selected = jlist.getSelectedItem().toString();
上面的代码为我提供了选定的JList
值。但是此代码必须放置在button事件中,当我单击按钮时,它将获得JList值并将其分配给JLabel
。
但是,我想做的是,只要用户单击其中的一项以实时JList
更新JLabel
。(无需单击按钮即可触发操作)
问题答案:
一个简单的示例如下所示,使用listselectionlistener
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class JListDemo extends JFrame {
public JListDemo() {
setSize(new Dimension(300, 300));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
final JLabel label = new JLabel("Update");
String[] data = { "one", "two", "three", "four" };
final JList dataList = new JList(data);
dataList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent arg0) {
if (!arg0.getValueIsAdjusting()) {
label.setText(dataList.getSelectedValue().toString());
}
}
});
add(dataList);
add(label);
setVisible(true);
}
public static void main(String args[]) {
new JListDemo();
}
}