java里面如果选择了JList的值,再按其他按钮的时候怎么把之前选的这个JList项清除掉

我是初学者,假如我做了一个model,这里有几行列表可选,我先鼠标左键选中一行记录,然后我再点其他JButton,怎么把之前选的这个JList的选项清除掉。就是变为未选状... 我是初学者,假如我做了一个model,这里有几行列表可选,我先鼠标左键选中一行记录,然后我再点其他JButton,怎么把之前选的这个JList的选项清除掉。就是变为未选状态。不然的话会感觉不合理。写一段代码或者说下方法,谢谢 展开
 我来答
雪飞潇潇
2017-09-14 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:843万
展开全部

分析: 1: 清除JList选中的项目,可以使用setSelectedIndices方法实现

JList1.setSelectedIndices(new int[] {});//设置选择的条目为没有. 用1个空白数组表示
//jlist1.setSelectedIndices(new int[] {0,1});//这就表示选择的条目为第1和第2个

分析:2 : 可以设置1个焦点响应事件. 当JList失去焦点时,使用上面的方法,清除掉所有选择

完整的参考代码

import java.awt.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.*;
import javax.swing.event.*;

public class MenuFrame extends JFrame implements ListSelectionListener {
JTextField jtf;
JList<String> jlist1;
JTextArea jta;
static final String[] CP = { "青椒土豆丝", "西红柿炒鸡蛋", "麻辣小龙虾", "鱼香肉丝", "西湖醋鱼", "红汤老火锅", "可乐", "茉莉花茶" };

public MenuFrame() {
JPanel jpCenter = new JPanel(new GridLayout(1, 2));
jlist1 = new JList<String>(CP);
jlist1.addListSelectionListener(this);
jlist1.addFocusListener(new FocusListener() {//给JList添加1个焦点响应事件

@Override
public void focusLost(FocusEvent e) {//失去焦点时执行的方法
jlist1.setSelectedIndices(new int[] {});//设置选择的条目为没有. 用1个空白数组表示
//jlist1.setSelectedIndices(new int[] {0,1});//这就表示选择的条目为第1和第2个
}

@Override
public void focusGained(FocusEvent e) {//获得焦点时,执行的方法
// TODO Auto-generated method stub

}
});
JScrollPane jsp1 = new JScrollPane(jlist1);// 滚动面板
jsp1.setBorder(BorderFactory.createTitledBorder("全部菜品"));// 带标题的边框
jpCenter.add(jsp1);

jta = new JTextArea(5, 30);
jta.setLineWrap(true);
JScrollPane jsp2 = new JScrollPane(jta);
jsp2.setBorder(BorderFactory.createTitledBorder("已选菜品"));
jpCenter.add(jsp2);

add(jpCenter);
setTitle("点菜");
setSize(300, 200);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args) {
new MenuFrame();// 启动窗口
}

public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
jta.append(jlist1.getSelectedValue()+",");
}
}
}

效果图

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式