÷÷÷÷÷÷=闹完了,向大家请教一个和JList有关的问题=÷÷÷÷÷÷ 能给我也发份么?谢谢[email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不错,我也沾点光吧。[email protected] import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.ListSelectionListener;import java.util.EventListener;import javax.swing.event.ListSelectionEvent;public class NewList extends JList implements ListSelectionListener{ int sel[]; boolean manualset; public void setSelectedIndices(int a[]) { manualset=true; System.out.println("NewList.setSelectedIndices"); if(a!=null) super.setSelectedIndices(a); else this.clearSelection(); sel = a; } public NewList() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent me) { if(me.getClickCount()<2) return; JList list = (JList) me.getSource(); int index = list.locationToIndex(me.getPoint()); int oldsel[]=list.getSelectedIndices(); int newsel[]; if(list.isSelectedIndex(index)) { //list.setSelectedIndices(int[] indices) newsel=new int[oldsel.length-1]; int j=0; for(int i=0;i<oldsel.length;i++) { if(oldsel[i]!=index) { newsel[j]=oldsel[i]; j++; } } } else { newsel=new int[oldsel.length+1]; if(oldsel.length>0) System.arraycopy(oldsel,0,newsel,0,oldsel.length); newsel[oldsel.length]=index; } list.setSelectedIndices(newsel); Rectangle rect = list.getCellBounds(index, index); list.repaint(rect); } }); addListSelectionListener(this); } public static void main(String args[]) { JFrame frame=new JFrame("new list test"); NewList newlist=new NewList(); String[] listdata={"item1","item2","item3"}; newlist.setListData(listdata); frame.getContentPane().add(newlist); frame.setSize(400,400); frame.setVisible(true); frame.show(); } boolean reset=false; public void valueChanged(ListSelectionEvent e) { if(reset==true) { return; } reset=true; if(!manualset) { if(sel!=null) super.setSelectedIndices(sel); else clearSelection(); } manualset=false; reset=false; //System.out.println("valueChanged"); }} 高手在前,不容我放肆,哈哈。masterz的搞法很好,但迂回曲折(right?)。我想从javax.swing.plaf.basic.basiclistui入手,但是没实现,masterz能再想想办法吗? 等弄好了一定给俺一份啊~~~俺也给分[email protected] 求助设置路径变量问题 jpanel 中显示 jpanel 把0~2999对应于3000种颜色 很着急,那位帮忙看看,小弟不胜感谢! 要学习jdbc了,请问用什么数据库好? 学JSP之前要什么基础吗? 高分请教java问题 请问在java中suspend()的用法(具体见内)。 不知道难不难 Java中,什么是JRE和JDK? 我的tomcat的8080端口被占用了,怎么办呢? 第一次接触Servlet,请大家帮忙!
[email protected]
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.ListSelectionListener;
import java.util.EventListener;
import javax.swing.event.ListSelectionEvent;public class NewList extends JList implements ListSelectionListener
{
int sel[];
boolean manualset;
public void setSelectedIndices(int a[])
{
manualset=true;
System.out.println("NewList.setSelectedIndices");
if(a!=null)
super.setSelectedIndices(a);
else
this.clearSelection();
sel = a;
}
public NewList()
{
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent me)
{
if(me.getClickCount()<2)
return;
JList list = (JList) me.getSource();
int index = list.locationToIndex(me.getPoint());
int oldsel[]=list.getSelectedIndices();
int newsel[];
if(list.isSelectedIndex(index))
{
//list.setSelectedIndices(int[] indices)
newsel=new int[oldsel.length-1];
int j=0;
for(int i=0;i<oldsel.length;i++)
{
if(oldsel[i]!=index)
{
newsel[j]=oldsel[i];
j++;
}
}
}
else
{
newsel=new int[oldsel.length+1];
if(oldsel.length>0)
System.arraycopy(oldsel,0,newsel,0,oldsel.length);
newsel[oldsel.length]=index;
}
list.setSelectedIndices(newsel);
Rectangle rect = list.getCellBounds(index, index);
list.repaint(rect);
}
});
addListSelectionListener(this);
}
public static void main(String args[])
{
JFrame frame=new JFrame("new list test");
NewList newlist=new NewList();
String[] listdata={"item1","item2","item3"};
newlist.setListData(listdata); frame.getContentPane().add(newlist);
frame.setSize(400,400);
frame.setVisible(true);
frame.show();
}
boolean reset=false;
public void valueChanged(ListSelectionEvent e)
{
if(reset==true)
{
return;
}
reset=true;
if(!manualset)
{
if(sel!=null) super.setSelectedIndices(sel);
else
clearSelection();
}
manualset=false;
reset=false;
//System.out.println("valueChanged");
}
}
masterz的搞法很好,但迂回曲折(right?)。
我想从javax.swing.plaf.basic.basiclistui入手,但是没实现,masterz能再想想办法吗?
[email protected]