1、JTable
JTable构造方法:
JTable(TableModel dm)
JTable(object[][]rowData,object[]columnNames)
JTable(Vector rowData,Vector columnNames)
JTable类常用的方法有:
getModel() //获得表格的数据来源对象
getSelectedRow() //获得选中的行数
例子1:
例子2:
2、JList
JList:
public JList(ListModel lm);
public void setModel(ListModel lm);
getSelectionModel().addListSelectionListener(ListSelectionListener lsl); //JList上的选择事件和JTabel相同
DefaultListModel:
public void addElement(Object o); //加入节点
public void removeElement(Object o); //移除节点
public int getSelectedIndex(); //获取被选中项的索引
public int[] getSelectedIndices(); //获取被选中项的索引
public Object getElementAt(int i);
public void setSelectedValue(Object o);
例子:
JTable构造方法:
JTable(TableModel dm)
JTable(object[][]rowData,object[]columnNames)
JTable(Vector rowData,Vector columnNames)
JTable类常用的方法有:
getModel() //获得表格的数据来源对象
getSelectedRow() //获得选中的行数
例子1:
import java.awt.Dimension; import java.util.Date; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class TableJFrame extends JFrame { public TableJFrame() { init(); this.setTitle("表格的例子"); this.setSize(new Dimension(400, 450)); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } private void init() { // // 1.二维数组初始化 // String[] columnHeader = { "编号", "姓名", "年龄", "地址" }; // String[][] data = new String[][] { { "user1", "小明", "26", "福州鼓楼" }, // { "user2", "小明2", "28", "福州鼓楼2" }, // { "user3", "小明3", "33", "福州鼓楼" }, // { "user4", "小明4", "26", "福州鼓楼" } }; // // //2、实现了tableModel接口 // DefaultTableModel defaultTableModel = new DefaultTableModel(data,columnHeader); //设置模型方式 // table.setModel(defaultTableModel); //3、vector Vector<String> colHeader = new Vector<String>(); colHeader.add("编号"); colHeader.add("名字"); colHeader.add("性别"); colHeader.add("日期"); Vector<Vector<String>> dataVec = new Vector<Vector<String>>(); Vector<String> row1 = new Vector<String>(); row1.add("0001"); row1.add("旺财"); row1.add("男"); row1.add(new Date().toString()); Vector<String> row2 = new Vector<String>(); row2.add("0002"); row2.add("小强"); row2.add("男"); row2.add(new Date().toString()); Vector<String> row3 = new Vector<String>(); row3.add("0003"); row3.add("韦小宝"); row3.add("女"); row3.add(new Date().toString()); Vector<String> row4 = new Vector<String>(); row4.add("0004"); row4.add("零零七"); row4.add("男"); row4.add(new Date().toString()); dataVec.add(row1); dataVec.add(row2); dataVec.add(row3); dataVec.add(row4); JTable table = new JTable(dataVec,colHeader); //要显示表头必须要加入到滚动面板 滚动面板加入到窗体 // JScrollPane scrollPane = new JScrollPane(table); JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(table); this.add(scrollPane); } /** * @param args */ public static void main(String[] args) { new TableJFrame(); } }
例子2:
import java.awt.BorderLayout; import java.awt.Dimension; import java.util.Date; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; public class TableJFrame2 extends JFrame { JButton buttonAlt = new JButton("修改"); JButton buttonDel = new JButton("删除"); // /表格方法使用 public TableJFrame2() { init(); this.setTitle("表格的例子2"); this.setSize(new Dimension(400, 450)); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } private void init() { Vector<String> colHeader = new Vector<String>(); colHeader.add("编号"); colHeader.add("名字"); colHeader.add("性别"); colHeader.add("日期"); Vector<Vector<String>> dataVec = new Vector<Vector<String>>(); Vector<String> row1 = new Vector<String>(); row1.add("0001"); row1.add("旺财"); row1.add("男"); row1.add(new Date().toString()); Vector<String> row2 = new Vector<String>(); row2.add("0002"); row2.add("小强"); row2.add("男"); row2.add(new Date().toString()); Vector<String> row3 = new Vector<String>(); row3.add("0003"); row3.add("韦小宝"); row3.add("女"); row3.add(new Date().toString()); Vector<String> row4 = new Vector<String>(); row4.add("0004"); row4.add("零零七"); row4.add("男"); row4.add(new Date().toString()); dataVec.add(row1); dataVec.add(row2); dataVec.add(row3); dataVec.add(row4); final JTable table = new JTable(dataVec,colHeader){ //1单元格不可以编辑 @Override public boolean isCellEditable(int row, int column) { // TODO Auto-generated method stub return false; } }; //2设置表头行高 table.getTableHeader().setPreferredSize(new Dimension(0,30)); //3设置表内容行高 table.setRowHeight(25); //4设置单选模式 table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //5设置单元格不可拖动 table.getTableHeader().setReorderingAllowed(false); //6设置不可改变列宽 table.getTableHeader().setResizingAllowed(false); //7设置列宽 table.getColumnModel().getColumn(0).setPreferredWidth(45); table.getColumnModel().getColumn(1).setPreferredWidth(55); table.getColumnModel().getColumn(2).setPreferredWidth(40); table.getColumnModel().getColumn(3).setPreferredWidth(305); // table.getColumnModel().getColumn(4).setPreferredWidth(305);//注意索引越界 int rowIndex = table.getSelectedRow(); System.out.println("suoyin:"+rowIndex); //监听事件 table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e) { if(e.getValueIsAdjusting()){//连续操作 int rowIndex = table.getSelectedRow(); if(rowIndex!=-1){ System.out.println("表格行被选中"+rowIndex); buttonAlt.setEnabled(true); buttonDel.setEnabled(true); } } }}); JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(table); this.add(scrollPane); buttonDel.setEnabled(false); buttonAlt.setEnabled(false); JPanel panel = new JPanel(); panel.add(buttonAlt); panel.add(buttonDel); this.add(panel,BorderLayout.SOUTH); } /** * @param args */ public static void main(String[] args) { new TableJFrame2(); } }
2、JList
JList:
public JList(ListModel lm);
public void setModel(ListModel lm);
getSelectionModel().addListSelectionListener(ListSelectionListener lsl); //JList上的选择事件和JTabel相同
DefaultListModel:
public void addElement(Object o); //加入节点
public void removeElement(Object o); //移除节点
public int getSelectedIndex(); //获取被选中项的索引
public int[] getSelectedIndices(); //获取被选中项的索引
public Object getElementAt(int i);
public void setSelectedValue(Object o);
例子:
import java.awt.Dimension; import java.util.Date; import java.util.Vector; import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; public class TestJListJFrame extends JFrame { public TestJListJFrame() { init(); this.setTitle("JList例子"); this.setSize(new Dimension(200, 450)); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } private void init() { final JList list = new JList(); DefaultListModel defaultListModel = new DefaultListModel(); defaultListModel.addElement("黄飞鸿"); defaultListModel.addElement("霍元甲"); defaultListModel.addElement("姚家兴"); defaultListModel.addElement("陈真"); defaultListModel.addElement("叶问"); defaultListModel.addElement("李小龙"); defaultListModel.addElement("方世玉"); list.setModel(defaultListModel); //单选 list.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //加入选择事件 list.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e) { if(e.getValueIsAdjusting()){ int index = list.getSelectedIndex(); System.out.println(index); String selectedItem = list.getSelectedValue().toString(); System.out.println("选中值:"+selectedItem); } }}); JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(list); this.add(scrollPane); } /** * @param args */ public static void main(String[] args) { new TestJListJFrame(); } }
发表评论
-
java 设计模式
2012-06-11 19:34 8541 单例模式 Singleton模式主要作 ... -
java JDBC编程
2012-06-11 19:30 15241:JDBC Java DataBase Connectiv ... -
java多线程技术
2012-06-09 18:17 1331[size=large] 1 了解程序、进程、线程的概念 ... -
java网络编程socket
2012-06-09 18:03 1459网络通信基本概念 协议:协议是一组在网络上发送信息的规则 ... -
java io流编程
2012-06-09 17:11 5826一、java.io.File 1、绝对路径和相对路径 F ... -
java swing基础与事件处理
2012-06-09 15:02 14543一、swing基础 1、平台无 ... -
eclipse常用快捷键
2012-06-08 15:39 0eclipse常用快捷键 Eclipse ... -
java集合框架
2012-06-08 15:33 15401、java集合架构支持3种类型的集合:规则集(Set),线性 ... -
java异常处理
2012-06-08 13:23 973一、Java异常的基础知识 ... -
java系统常用类
2012-06-08 13:07 13031、Object类 构造方法: Object() 常用方法: ... -
java三大特性
2012-06-08 12:44 1326java三大特性: 封装:隐藏对象的属性和实现细节,仅对外公开 ... -
java基础语法
2012-06-08 12:16 10011、环境变量 (1)JAVA_HOME:指明JDK安装路径,就 ...
相关推荐
此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和操作数据表格或列表。 事件处理是Swing应用中的关键部分。通过实现监听器接口,如`ActionListener`,开发者可以响应用户的点击、键盘输入等事件。...
除此之外,开发者可能还使用了JPanel来组织和定制游戏界面,以及JList或JTable来展示玩家列表或者游戏历史记录。 由于该项目描述中提到是“测试版”,这可能意味着它还在开发阶段,可能存在一些未完善的功能或者bug...
例如,JTable和JList组件可以通过DefaultListModel或DefaultTableModel来管理数据,这样可以方便地更新显示内容。同时,Swing支持事件处理,通过实现EventListener接口,开发者可以为组件添加事件监听器,如...
6. **可定制组件**: Swing提供了JTable、JTree和JList等组件,可以方便地展示和操作复杂数据。这些案例可能会展示如何自定义这些组件的行为和外观,比如自定义列渲染器和编辑器。 7. **国际化和可访问性**: Swing...
总的来说,这个Demo涵盖了Java Swing中关于`JTable`的基本操作,包括数据的添加、修改和删除,以及对用户交互的响应。这有助于开发者掌握如何在Swing应用中构建复杂的用户界面,并处理数据操作。通过实践和理解这个...
本压缩包包含了11套完整的Java Swing管理系统源码,这些源码对于学习和理解Java GUI编程具有很高的价值。下面我们将深入探讨Java Swing的核心概念、特性以及在开发管理系统中的应用。 1. **Java Swing基本组件** -...
中级阶段还会涉及模型-视图-控制器(MVC)设计模式,Swing中的许多组件遵循这一模式,如JTable和JList,它们的模型可以独立于视图和控制器进行操作。 **高级篇:自定义组件与高级特性** 在高级阶段,学习如何创建...
比如,JTable和JList等组件可以绑定到数据模型,当数据改变时,视图会自动更新,反之亦然。 定制组件是Swing的一大特色,开发者可以通过继承现有的组件类并重写相关方法,创建出符合特定需求的自定义组件。例如,...
本篇将深入探讨Java Swing工具箱中的关键概念和技术。 首先,Swing 提供了大量组件(JComponents),这些组件用于构建用户界面,例如按钮(JButton)、文本框(JTextField)、列表(JList)、表格(JTable)和面板...
swing JList 拖拽记录到 JTable
### 《Java Swing 终极指南》第三版关键知识点概览 #### 一、书籍基本信息与版权信息 - **书名**:《Java Swing 终极指南》第三版 - **作者**:John Zukowski - **出版社**:本书由Springer-Verlag New York, Inc....
总结起来,Java Swing 提供了一整套组件和工具,用于创建丰富的图形用户界面,无论是在桌面应用还是轻量级应用中都有广泛的应用。理解和熟练掌握Swing,能够帮助开发者创建出高效、美观且易于使用的应用程序。
例如,JTable和JList组件可以绑定到一个TableModel,动态更新数据时,表格内容也会自动更新。 Swing还引入了轻量级组件的概念,相较于早期的AWT(Abstract Window Toolkit),Swing组件在性能和跨平台兼容性上有...
本资源“Java Swing 组件全演示源代码”包含了Java Swing中的各种组件的完整示例代码,可以帮助开发者深入理解和实际操作这些组件,提升GUI编程能力。 Swing 提供了大量的组件,包括基础组件如按钮(JButton)、...
Java Swing电子相册管理系统是一个基于面向对象思想设计的桌面应用程序,它允许用户管理和查看他们的照片集合。Swing是Java提供的一种用于创建图形用户界面(GUI)的库,它提供了丰富的组件和工具,使得开发者可以...
Java Swing和 SWT 是两种在Java中创建图形用户界面(GUI)的库,它们都提供了丰富的组件和工具来构建桌面应用程序。在这篇文章中,我们将深入探讨Java Swing中的分页技术和SWT(Standard Widget Toolkit)的使用,...
本项目"JavaSwing编程demo"是一个基于Swing的实践应用,旨在帮助初学者了解和掌握Swing的基本用法。 首先,Swing 提供了一系列的组件类,如 JButton、JLabel、JTextField、JTextArea、JCheckBox、JRadioButton等,...
Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation ...在学习过程中,参考《Java Swing图形界面开发与案例详解》等专业书籍,结合中文API文档,能够更深入地理解和运用Java Swing。
1. **Swing组件**:Swing 提供了许多组件,如按钮(JButton),文本框(JTextField),标签(JLabel),面板(JPanel),滚动窗格(JScrollPane),列表(JList),表格(JTable),树(JTree)等。这些组件是构建用户界面的基本单元...
- "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...