`
lg_asus
  • 浏览: 191867 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JList雙向列表

阅读更多
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class JListDemo7 extends MouseAdapter{
	JList list = null;
	JList list2 = null;
	DefaultListModel mode = null;
	DefaultListModel mode2= null;
	String[] s ={"美國","日本","中國","英國","法國","德國"};
	
	public JListDemo7(){
		JFrame jf = new JFrame();
		Container contentPane = jf.getContentPane();
		contentPane.setLayout(new GridLayout(1,2));
		
		mode = new DataModel4(1);
		list = new JList(mode);
		list.setBorder(BorderFactory.createTitledBorder("國家名稱"));
		list.addMouseListener(this);
		
		mode2 = new DataModel4(2);
		list2 = new JList(mode2);
		list2.setBorder(BorderFactory.createTitledBorder("你喜歡哪個國家呢?"));
		list2.addMouseListener(this);
		
		contentPane.add(new JScrollPane(list));
		contentPane.add(new JScrollPane(list2));
		jf.pack();
		jf.setVisible(true);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	
	@Override
	public void mouseClicked(MouseEvent e){
		int index;
		if(e.getSource()==list){
			if(e.getClickCount()==2){
				index = list.locationToIndex(e.getPoint());
				String stmp = (String)mode.getElementAt(index);
				mode2.addElement(stmp);
				list2.setModel(mode2);
				mode.removeElementAt(index);
				list.setModel(mode);
			}
		}
		if(e.getSource()==list2){
			if(e.getClickCount()==2){
				index = list2.locationToIndex(e.getPoint());
				String stmp = (String)mode2.getElementAt(index);
				mode.addElement(stmp);
				mode2.removeElementAt(index);
				list.setModel(mode);
				list2.setModel(mode2);
			}
		}
	}
	
	public static void main(String...args){
		new JListDemo7();
	}
	
	class DataModel4 extends DefaultListModel{
		DataModel4(int flag){
			if(flag==1){
				for(int i=0;i<s.length;i++){
					addElement(s[i]);
				}
			}
		}
	}
}


摘自:深入淺出Java Swing程序設計
分享到:
评论

相关推荐

    listas_simples_java:Java中的简单列表的Netbeans项目

    在这个“简单列表”的项目中,可能包含了添加、删除和显示列表元素的按钮,以及一个显示列表的组件,如JList或JTable。 在实际应用中,列表常用于存储和管理动态数据集合,如数据库查询结果、用户输入的数据等。...

    仿QQ聊天工具 Java代码

    - JList:列表组件,用于显示一组选项供用户选择。 - JTable:表格组件,用于显示和编辑二维数据。 2. **布局管理器** - FlowLayout:按照从左到右,从上到下的顺序排列组件。 - BorderLayout:将组件分为北、...

    mv_practica3:列表显示

    这些库提供了组件如JList,可以用来显示和交互列表数据。 6. **数据结构和算法**: 实践中可能还会涉及到如何有效地处理和操作列表数据,比如排序(可以使用Collections.sort()),查找(二分查找、线性查找),以及...

    Design Pattern In Java.pdf

    通过移动数据在列表之间、使用JFC的JList类,以及讨论双向适配器和插件适配器,书中解释了适配器在Java中的应用。 书中这些内容旨在帮助Java开发者更好地理解和运用设计模式,提升代码质量和可扩展性。设计模式的...

    Java 版仿QQ

    使用JFrame作为主窗口,JLabel和JTextArea显示信息,JButton处理用户操作,JList展示联系人,JOptionPane用于弹出对话框提示用户输入等。 5. **集合**:在Java版仿QQ中,集合框架如ArrayList、HashMap等被广泛使用...

    Scoket,Swing

    7. JList和JTable:用于展示列表和表格数据。 8. JComboBox:下拉框组件,提供选项选择。 Swing还提供了布局管理器,如FlowLayout、BorderLayout、GridLayout和GridBagLayout,帮助开发者组织组件在窗口中的布局。...

    swing+socket的QQ简单通信

    在这个项目中,开发者可能使用了JFrame作为主窗口,用JButton来表示各种操作按钮(如登录、查找好友、发送消息),JTextField用于输入文字,JList或者JTable用来显示好友列表等。Swing还支持事件监听,使得用户与...

    java聊天系统,版本多,socket,swing

    例如,JFrame用于创建主窗口,JLabel用于显示信息,JTextArea用于输入和展示聊天内容,JButton用于触发发送事件,而JList则可用于展示在线用户或群聊成员。 为了实现单聊和群聊功能,开发者需要设计不同的消息结构...

    jgoodies-common-1_3_0

    1. **Lists**:这个模块提供了一系列用于操作列表的工具类,如 ListModelAdapter 和 ListTransferHandler,它们简化了 JList 的数据绑定和拖放操作。 2. **Forms**:JGoodies Forms 是一个布局管理器,允许开发者以...

    java一个简单的即时通讯工具的设计与开发.zip

    Java的Socket类提供了客户端与服务器之间的双向通信接口,而WebSocket则适合构建实时双向通信的Web应用。 **2. 服务器端开发** 服务器端设计包括以下关键部分: - **服务器启动与监听**:使用ServerSocket类监听...

    java swingqq聊天

    开发者可能使用了JFrame作为主窗口,JLabel和JButton来展示文本和提供交互,JTextField和JPasswordField用于输入用户名和密码,JTextArea和JScrollPane用于聊天窗口的显示和滚动,JList或JComboBox来实现好友列表等...

    java 试题3

    10. 列表框(JList)通常与滚动条结合使用,以展示超出可视区域的项目。选项A正确,表示了这种常见做法。 11. 复选框(JCheckBox)允许用户选择多个选项,而单选框(JRadioButton)则限制用户只能选择其中一个。...

    基于java的电子相册源码.zip

    例如,`JFrame`作为主窗口,`JPanel`用于展示图片,`JButton`实现按钮功能,`JList`或`JTable`可以用来展示图片列表。 在"codefans.net"这个文件夹中,可能包含了项目的源代码、资源文件和其他相关文档。源码的组织...

    swing即时聊天EQ

    如JFrame(主窗口)、JLabel(标签)、JTextField(文本字段)用于输入聊天内容,JButton(按钮)用于发送消息,JTextArea(文本区域)显示聊天记录,以及可能的JList或JTable展示联系人列表。 2. **事件监听**:...

    聊天界面搭建,原生JAVA开发(图片,文字,定位)

    在Java中,我们可以使用JTextPane或JTextArea来创建文本输入框,JButton创建发送按钮,JList或JTable展示消息历史,JLabel或JScrollPane用于显示图片,而JMapViewer或Google Maps API则可实现地图功能。 2. **事件...

    java swing版qq

    在Java Swing版QQ中,开发者可能使用了JFrame作为主窗口,JLabel和JTextArea来显示信息,JButton用于交互,JOptionPane来进行对话框提示,以及可能用到的其他组件如JList(联系人列表)和JTextField(输入框)。...

    java课程设计人事管理系统(20210806184949).pdf

    在细节方面,“ListpListListIteratorit”暗示了Java集合框架的使用,List接口以及其下的具体实现类如ArrayList被用来存储员工信息,而ListIterator是一个可以双向遍历的迭代器。通过它,我们可以在遍历列表的同时...

    基于java的聊天系统的设计于实现(系统+lw).zip

    在聊天系统中,可能使用JFrame作为主窗口,JTextField用于输入消息,JButton用于发送消息,JList或JTextArea显示聊天历史记录。事件监听器如ActionListener用于响应用户的操作。 5. **Java集合框架**:为了存储和...

    Swing下的MVC demo

    在Swing中,`JTable`, `JList`等组件可以绑定到一个`DefaultListModel`或`DefaultTableModel`,它们作为模型层的代表。模型并不关心如何显示数据,只负责数据的增删改查,当数据发生变化时,会通知观察者(通常是...

Global site tag (gtag.js) - Google Analytics