java swing之JTable和JList

1、JTable

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 colHeader = new Vector();

colHeader.add("编号");

colHeader.add("名字");

colHeader.add("性别");

colHeader.add("日期");

Vector> dataVec = new Vector>();

Vector row1 = new Vector();

row1.add("0001");

row1.add("旺财");

row1.add("男");

row1.add(new Date().toString());

Vector row2 = new Vector();

row2.add("0002");

row2.add("小强");

row2.add("男");

row2.add(new Date().toString());

Vector row3 = new Vector();

row3.add("0003");

row3.add("韦小宝");

row3.add("女");

row3.add(new Date().toString());

Vector row4 = new Vector();

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 colHeader = new Vector();

colHeader.add("编号");

colHeader.add("名字");

colHeader.add("性别");

colHeader.add("日期");

Vector> dataVec = new Vector>();

Vector row1 = new Vector();

row1.add("0001");

row1.add("旺财");

row1.add("男");

row1.add(new Date().toString());

Vector row2 = new Vector();

row2.add("0002");

row2.add("小强");

row2.add("男");

row2.add(new Date().toString());

Vector row3 = new Vector();

row3.add("0003");

row3.add("韦小宝");

row3.add("女");

row3.add(new Date().toString());

Vector row4 = new Vector();

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 jtable方法,java swing之JTable跟JList相关推荐

  1. Java本地方法/Java native方法/JNI

    一.什么是JNI? JNI是 Java Native Interface的缩写,又叫Java本地方法/Java native方法.用于Java代码和其他语言写的代码进行交互.使用java与本地已编译的 ...

  2. Java SubList 类 Java subList方法 Java ArrayList$SubList 方法特点 SubList 用法

    Java SubList 类 Java subList方法 Java ArrayList$SubList 方法特点 SubList 用法 一.概述 在java集合中,常用ArrayList类中,若需要 ...

  3. java图形界面设计 swing之JTable表格的创建使用-添加鼠标监听

    最近用java设计了一个桌面管理系统, 在数据展示模块的时候遇到了一点问题,找不到好的展示方式 最后发现了JTable这个类, 主要涉及这个类的构造与使用 注意:JTable都需要在JScrollPa ...

  4. java原生方法,Java Servlet原生调用方法过程简化

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 初学java web之后,了解了jsp跟Servlet交互的过程. 具体过程如下: 创建一个servlet,并重写doPost和doGer方法 在MXL文 ...

  5. java textfield方法,Java TextField求教育

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1 package Button; 2 import java.awt.*; 3 import java.awt.event.*; 4 public cl ...

  6. java resizable方法,[Java教程]jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧...

    [Java教程]jQuery UI resizable使用注意事项.实时等比例拉伸及你不知道的技巧 0 2015-01-29 00:00:22 这篇文章总结的是我在使用resizable插件的过程中, ...

  7. java jpanel方法,Java JPanel.putClientProperty方法代码示例

    import javax.swing.JPanel; //导入方法依赖的package包/类 private JPanel createContainer(ProfilerFeature featur ...

  8. java discard方法,Java ByteBuf.discardReadBytes方法代码示例

    import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类 @Override public Iterable split(final ByteBuf bu ...

  9. java解密方法,java加密,解密方法

    /** *AES加密解密工具类 *@author M-Y */ public class AESUtil { private static Logger log = LoggerFactory.get ...

最新文章

  1. matlab 句柄图像尝试
  2. Xilinx ISE 开发过程中生成的各种文件(二)
  3. golang 关闭制定名称的 tomcat_Tomcat原理详解及请求过程
  4. Mini音乐播放器【简单版】(附源码)
  5. 【机器视觉】 dev_map_prog算子
  6. 理请求时出现未知错误.服务器返回的状态码为: 500,react-native
  7. 进程的创建-fork(python版)
  8. FTP 编写 4:命令解析
  9. latex 中表格怎么指定编号_在医学论文中,应用表格怎么用才是正确的?
  10. java聊天室项目_java聊天室的项目的设计书.doc
  11. 幼儿园调查过程怎么写_幼儿园家长的调查问卷话术
  12. arcgis 去除影像黑色边框(nodata)
  13. 一衣带水 守望相助:中日夫妻七七再行慈善之旅
  14. 一般人不会的电脑小绝技(ZT)
  15. 特性(Attribute)
  16. [AHK]输入法状态提示,中文状态提示“中”,英文状态提示“EN”[转]
  17. vue中的this.$el
  18. uni-app实现尺子效果
  19. outlook从服务器中恢复已删除项目,恢复已删除的Outlook日历项目
  20. 回首2021,展望2022

热门文章

  1. 架构设计:系统存储(1)——块存储方案(1)
  2. 边缘计算在物联网(IoT)当中的运用「物联网架构探索系列」
  3. php正则匹配A标签href并替换
  4. Android 集成小米推送功能教程
  5. 天正网络版怎么通过注册表修改服务器地址,如何修改天正的网络服务器地址
  6. 武汉大学IGS数据中心网站的下载方法
  7. 多传感器融合中的时间同步2-论文阅读
  8. 专访童小军:Hadoop是未来大数据的标准
  9. 【CMake 项目】CMake 项目、目标、子目录
  10. H3C QoS配置经典讲解