Re: [问题] JList add或clear 不要触发valuechagne

楼主: sbrhsieh (十年一梦)   2015-02-16 23:20:34
※ 引述《kevin1234562 (章鱼)》之铭言:
: private DefaultListModel<StepInfo> modelStep = new DefaultListModel<StepInfo>();
: private JList lstStep = new JList(modelStep);
: ListSelectionListener lstStepSelectionListener = new ListSelectionListener() {
: @Override
: public void valueChanged(ListSelectionEvent e) {
: if (!e.getValueIsAdjusting())
: JOptionPane.showMessageDialog(null, lstStep.getSelectedIndex());
: }
: };
: lstStep.addListSelectionListener(lstStepSelectionListener);
: 以上是我一个jListf加上Listener
: 我遇到一个问题是
: 当我对lstStep addElement或者 clear他的时候 都为触发 valueChanged 事件
: 这样让我很困扰..
: 我目前解决方式是用一个boolean变量 假如我要去做add或者clear的话 就使用变量来挡住
: 不知道是否有更好或者正规的方式??
: 这问题困扰我很久了....
困扰你的部分是?
ListSelectionEvent 是告知 selection 的哪个范围有变更(没有哪个部分是选取
的资讯),一般不会直接利用到 event 本身带的范围资讯,而是去向 JList/
ListSelectionModel 要 selected values/selected indices,再据以做适当处理。
以这个方向下去做,就不会有因为变更 model 而造成困扰一事,会的话应该是任何
造成 selection 有变更的动作都会造成困扰。那 这是另外的问题了~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com