java jtable方法,java swing之JTable跟JList
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相关推荐
- Java本地方法/Java native方法/JNI
一.什么是JNI? JNI是 Java Native Interface的缩写,又叫Java本地方法/Java native方法.用于Java代码和其他语言写的代码进行交互.使用java与本地已编译的 ...
- Java SubList 类 Java subList方法 Java ArrayList$SubList 方法特点 SubList 用法
Java SubList 类 Java subList方法 Java ArrayList$SubList 方法特点 SubList 用法 一.概述 在java集合中,常用ArrayList类中,若需要 ...
- java图形界面设计 swing之JTable表格的创建使用-添加鼠标监听
最近用java设计了一个桌面管理系统, 在数据展示模块的时候遇到了一点问题,找不到好的展示方式 最后发现了JTable这个类, 主要涉及这个类的构造与使用 注意:JTable都需要在JScrollPa ...
- java原生方法,Java Servlet原生调用方法过程简化
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 初学java web之后,了解了jsp跟Servlet交互的过程. 具体过程如下: 创建一个servlet,并重写doPost和doGer方法 在MXL文 ...
- java textfield方法,Java TextField求教育
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1 package Button; 2 import java.awt.*; 3 import java.awt.event.*; 4 public cl ...
- java resizable方法,[Java教程]jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧...
[Java教程]jQuery UI resizable使用注意事项.实时等比例拉伸及你不知道的技巧 0 2015-01-29 00:00:22 这篇文章总结的是我在使用resizable插件的过程中, ...
- java jpanel方法,Java JPanel.putClientProperty方法代码示例
import javax.swing.JPanel; //导入方法依赖的package包/类 private JPanel createContainer(ProfilerFeature featur ...
- java discard方法,Java ByteBuf.discardReadBytes方法代码示例
import io.netty.buffer.ByteBuf; //导入方法依赖的package包/类 @Override public Iterable split(final ByteBuf bu ...
- java解密方法,java加密,解密方法
/** *AES加密解密工具类 *@author M-Y */ public class AESUtil { private static Logger log = LoggerFactory.get ...
最新文章
- matlab 句柄图像尝试
- Xilinx ISE 开发过程中生成的各种文件(二)
- golang 关闭制定名称的 tomcat_Tomcat原理详解及请求过程
- Mini音乐播放器【简单版】(附源码)
- 【机器视觉】 dev_map_prog算子
- 理请求时出现未知错误.服务器返回的状态码为: 500,react-native
- 进程的创建-fork(python版)
- FTP 编写 4:命令解析
- latex 中表格怎么指定编号_在医学论文中,应用表格怎么用才是正确的?
- java聊天室项目_java聊天室的项目的设计书.doc
- 幼儿园调查过程怎么写_幼儿园家长的调查问卷话术
- arcgis 去除影像黑色边框(nodata)
- 一衣带水 守望相助:中日夫妻七七再行慈善之旅
- 一般人不会的电脑小绝技(ZT)
- 特性(Attribute)
- [AHK]输入法状态提示,中文状态提示“中”,英文状态提示“EN”[转]
- vue中的this.$el
- uni-app实现尺子效果
- outlook从服务器中恢复已删除项目,恢复已删除的Outlook日历项目
- 回首2021,展望2022