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 8731 单例模式 Singleton模式主要作 ... -
java JDBC编程
2012-06-11 19:30 15371:JDBC Java DataBase Connectiv ... -
java多线程技术
2012-06-09 18:17 1352[size=large] 1 了解程序、进程、线程的概念 ... -
java网络编程socket
2012-06-09 18:03 1472网络通信基本概念 协议:协议是一组在网络上发送信息的规则 ... -
java io流编程
2012-06-09 17:11 5845一、java.io.File 1、绝对路径和相对路径 F ... -
java swing基础与事件处理
2012-06-09 15:02 14576一、swing基础 1、平台无 ... -
eclipse常用快捷键
2012-06-08 15:39 0eclipse常用快捷键 Eclipse ... -
java集合框架
2012-06-08 15:33 15581、java集合架构支持3种类型的集合:规则集(Set),线性 ... -
java异常处理
2012-06-08 13:23 988一、Java异常的基础知识 ... -
java系统常用类
2012-06-08 13:07 13241、Object类 构造方法: Object() 常用方法: ... -
java三大特性
2012-06-08 12:44 1342java三大特性: 封装:隐藏对象的属性和实现细节,仅对外公开 ... -
java基础语法
2012-06-08 12:16 10221、环境变量 (1)JAVA_HOME:指明JDK安装路径,就 ...
评论