博为峰Java技术文章 ——JavaSE Swing列表框双击事件的处理Ⅱ

博为峰小博老师:

这个程序首先创建一个DefaultListModel类的继承类,然后将其实例化成两个不同的列表框,当双击左边的列表框中的数据时,就会在右边添加相应的数据,反之亦然。具体代码如下:

publicclassBWFextendsMouseAdapter{

JListlist1=null;

JListlist2=null;

DefaultListModelmode1=null;

DefaultListModelmode2=null;

String[]s={"Java","C","C#","Hibernate"};

publicBWF(){

JFramejf=newJFrame("博为峰教育");

ContainercontentPane=jf.getContentPane();

contentPane.setLayout(newGridLayout(1, 2));

mode1=newDataModel(1);

list1=newJList(mode1);

list1.setBorder(BorderFactory.createTitledBorder("图书种类!"));

list1.addMouseListener(this);

mode2=newDataModel(2);

list2=newJList(mode2);

list2.setBorder(BorderFactory.createTitledBorder("您选择的书:"));

list2.addMouseListener(this);

contentPane.add(newJScrollPane(list1));

contentPane.add(newJScrollPane(list2));

jf.pack();

jf.setVisible(true);

jf.addWindowListener(newWindowAdapter() {

publicvoidwindowClosing(WindowEvente) {

System.exit(0);

}

});

}

publicstaticvoidmain(String[]args) {

newBWF();

}

//鼠标双击事件

publicvoidmouseClicked(java.awt.event.MouseEvente) {

intindex;

if(e.getSource()==list1){

if(e.getClickCount()==2){

index=list1.locationToIndex(e.getPoint());

Stringtmp=(String)mode1.getElementAt(index);

mode2.addElement(tmp);

list2.setModel(mode2);

mode1.removeElementAt(index);

list1.setModel(mode1);

}

}

if(e.getSource()==list2){

if(e.getClickCount()==2){

index=list2.locationToIndex(e.getPoint());

Stringtmp=(String)mode2.getElementAt(index);

mode1.addElement(tmp);

list1.setModel(mode1);

mode2.removeElementAt(index);

list2.setModel(mode2);

}

}

}

classDataModelextendsDefaultListModel{

DataModel(intflag) {

if(flag==1){

for(inti=0;i

addElement(s[i]);

}

}

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容