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程序設計
分享到:
相关推荐
在这个“简单列表”的项目中,可能包含了添加、删除和显示列表元素的按钮,以及一个显示列表的组件,如JList或JTable。 在实际应用中,列表常用于存储和管理动态数据集合,如数据库查询结果、用户输入的数据等。...
- JList:列表组件,用于显示一组选项供用户选择。 - JTable:表格组件,用于显示和编辑二维数据。 2. **布局管理器** - FlowLayout:按照从左到右,从上到下的顺序排列组件。 - BorderLayout:将组件分为北、...
这些库提供了组件如JList,可以用来显示和交互列表数据。 6. **数据结构和算法**: 实践中可能还会涉及到如何有效地处理和操作列表数据,比如排序(可以使用Collections.sort()),查找(二分查找、线性查找),以及...
通过移动数据在列表之间、使用JFC的JList类,以及讨论双向适配器和插件适配器,书中解释了适配器在Java中的应用。 书中这些内容旨在帮助Java开发者更好地理解和运用设计模式,提升代码质量和可扩展性。设计模式的...
使用JFrame作为主窗口,JLabel和JTextArea显示信息,JButton处理用户操作,JList展示联系人,JOptionPane用于弹出对话框提示用户输入等。 5. **集合**:在Java版仿QQ中,集合框架如ArrayList、HashMap等被广泛使用...
7. JList和JTable:用于展示列表和表格数据。 8. JComboBox:下拉框组件,提供选项选择。 Swing还提供了布局管理器,如FlowLayout、BorderLayout、GridLayout和GridBagLayout,帮助开发者组织组件在窗口中的布局。...
在这个项目中,开发者可能使用了JFrame作为主窗口,用JButton来表示各种操作按钮(如登录、查找好友、发送消息),JTextField用于输入文字,JList或者JTable用来显示好友列表等。Swing还支持事件监听,使得用户与...
例如,JFrame用于创建主窗口,JLabel用于显示信息,JTextArea用于输入和展示聊天内容,JButton用于触发发送事件,而JList则可用于展示在线用户或群聊成员。 为了实现单聊和群聊功能,开发者需要设计不同的消息结构...
1. **Lists**:这个模块提供了一系列用于操作列表的工具类,如 ListModelAdapter 和 ListTransferHandler,它们简化了 JList 的数据绑定和拖放操作。 2. **Forms**:JGoodies Forms 是一个布局管理器,允许开发者以...
Java的Socket类提供了客户端与服务器之间的双向通信接口,而WebSocket则适合构建实时双向通信的Web应用。 **2. 服务器端开发** 服务器端设计包括以下关键部分: - **服务器启动与监听**:使用ServerSocket类监听...
开发者可能使用了JFrame作为主窗口,JLabel和JButton来展示文本和提供交互,JTextField和JPasswordField用于输入用户名和密码,JTextArea和JScrollPane用于聊天窗口的显示和滚动,JList或JComboBox来实现好友列表等...
10. 列表框(JList)通常与滚动条结合使用,以展示超出可视区域的项目。选项A正确,表示了这种常见做法。 11. 复选框(JCheckBox)允许用户选择多个选项,而单选框(JRadioButton)则限制用户只能选择其中一个。...
例如,`JFrame`作为主窗口,`JPanel`用于展示图片,`JButton`实现按钮功能,`JList`或`JTable`可以用来展示图片列表。 在"codefans.net"这个文件夹中,可能包含了项目的源代码、资源文件和其他相关文档。源码的组织...
如JFrame(主窗口)、JLabel(标签)、JTextField(文本字段)用于输入聊天内容,JButton(按钮)用于发送消息,JTextArea(文本区域)显示聊天记录,以及可能的JList或JTable展示联系人列表。 2. **事件监听**:...
在Java中,我们可以使用JTextPane或JTextArea来创建文本输入框,JButton创建发送按钮,JList或JTable展示消息历史,JLabel或JScrollPane用于显示图片,而JMapViewer或Google Maps API则可实现地图功能。 2. **事件...
在Java Swing版QQ中,开发者可能使用了JFrame作为主窗口,JLabel和JTextArea来显示信息,JButton用于交互,JOptionPane来进行对话框提示,以及可能用到的其他组件如JList(联系人列表)和JTextField(输入框)。...
在细节方面,“ListpListListIteratorit”暗示了Java集合框架的使用,List接口以及其下的具体实现类如ArrayList被用来存储员工信息,而ListIterator是一个可以双向遍历的迭代器。通过它,我们可以在遍历列表的同时...
在聊天系统中,可能使用JFrame作为主窗口,JTextField用于输入消息,JButton用于发送消息,JList或JTextArea显示聊天历史记录。事件监听器如ActionListener用于响应用户的操作。 5. **Java集合框架**:为了存储和...
在Swing中,`JTable`, `JList`等组件可以绑定到一个`DefaultListModel`或`DefaultTableModel`,它们作为模型层的代表。模型并不关心如何显示数据,只负责数据的增删改查,当数据发生变化时,会通知观察者(通常是...