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 8151 单例模式 Singleton模式主要作 ... -
java JDBC编程
2012-06-11 19:30 14921:JDBC Java DataBase Connectiv ... -
java多线程技术
2012-06-09 18:17 1290[size=large] 1 了解程序、进程、线程的概念 ... -
java网络编程socket
2012-06-09 18:03 1427网络通信基本概念 协议:协议是一组在网络上发送信息的规则 ... -
java io流编程
2012-06-09 17:11 5781一、java.io.File 1、绝对路径和相对路径 F ... -
java swing基础与事件处理
2012-06-09 15:02 14418一、swing基础 1、平台无 ... -
eclipse常用快捷键
2012-06-08 15:39 0eclipse常用快捷键 Eclipse ... -
java集合框架
2012-06-08 15:33 14941、java集合架构支持3种类型的集合:规则集(Set),线性 ... -
java异常处理
2012-06-08 13:23 925一、Java异常的基础知识 ... -
java系统常用类
2012-06-08 13:07 12651、Object类 构造方法: Object() 常用方法: ... -
java三大特性
2012-06-08 12:44 1276java三大特性: 封装:隐藏对象的属性和实现细节,仅对外公开 ... -
java基础语法
2012-06-08 12:16 9641、环境变量 (1)JAVA_HOME:指明JDK安装路径,就 ...
相关推荐
swing JList 拖拽记录到 JTable
Java Swing实例源码包,包括了JComboBox 、Border、JList、JMenu、JSlider、JTabbedPane、JTable、JToolTip、JTree等常用Swing组件的用法示例,对Java编写界面来说,Swing确实是个不错的选择,希望这些示例能让你更...
对话框,及自定义对话框- 菜单和工具栏- 自定义绘图- JList 列表框的用法,以及单元格的自定义显示- JTable 表格的用法,以及单元格的自定义显示- 一个基于 JTable 和 JSON 的学生管理系统- Java Swing应用程序的...
swing入门必看示例( oracle 官方swingset3示例) ...组件:JTable/JTree/JList 基本组件:ToggleButtons/JButton/JComboBox/ProgressBar/Slider/Spinner/TextFeild/JEditorPane 选择器:JColorChooser/JOptionPane
3)负责人可以在软件中浏览学员、教练和车辆的信息概况(JTable或JList),可以查看选中记录的详细信息;可以编辑更新记录信息。 4)负责人可以通过软件为一个或一批学员新建学车记录,即为学员安排教练、车辆、练车...
3)负责人可以在软件中浏览学员、教练和车辆的信息概况(JTable或JList),可以查看选中记录的详细信息;可以编辑更新记录信息。 4)负责人可以通过软件为一个或一批学员新建学车记录,即为学员安排教练、车辆、练车...
学生提问:为什么有栈内存和堆内存之分? 93 4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提问:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样...
用到了:JTree(支持增删改,支持无限级分类管理),JTable(支持增删改,各种查询,以及与JTree,JList之间的通信),JPopuMenu,自定义FORM,JList 有兴趣的朋友,可以参考.. 数据库参数在db.properties文件中配置(默认MySql帐号...
第7章Java的输入和输出237 7.1文件和输入输出流237 7.2InputStream类和OutputStream类的使用238 7.2.1InputStream中的方法238 7.2.2OutputStream中的方法239 7.2.3文件输入流FileInputStream239 7.2.4文件输出...
第6章 对象和类——Java世界的细胞 77 6.1 面向对象概述 77 6.1.1 面向对象程序设计思想的诞生 77 6.1.2 面向过程与面向对象思想的对比 78 6.1.3 面向对象技术的背景和特点 79 6.2 类的定义与对象的创建...