java jtable demo_JTable综合操作案例

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.SwingConstants;

import javax.swing.event.TableModelEvent;

import javax.swing.event.TableModelListener;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableColumnModel;

import javax.swing.table.DefaultTableModel;

public class TableDemo extends JFrame

implements ActionListener {

//操作面板,用于放置增删改按钮

private JPanel controlPanel;

//定义表格的数据模型

private DefaultTableModel model;

//定义一个表格

private JTable table;

//定义一个滚动面板,用于放置表格

private JScrollPane scrollPane;

//增删改按钮

private JButton addBtn, deleteBtn, updateBtn;

public TableDemo(){

//设置窗口尺寸

setBounds(100, 100, 500, 500);

//JTable的表头标题

String[] head = {"学号", "姓名", "班级", "性别"};

//JTable的初始化数据

Object[][] datas = {{"001","张三","班级一","男"},

{"002","李四","班级二","女"}};

//初始化JTable的数据模型

model = new DefaultTableModel(datas, head);

//初始化表格

table = new JTable(model);

//初始化滚动面板

scrollPane = new JScrollPane(table);

//初始化按钮以及添加监听器

addBtn = new JButton("增加");

deleteBtn = new JButton("删除");

updateBtn = new JButton("修改");

addBtn.addActionListener(this);

deleteBtn.addActionListener(this);

updateBtn.addActionListener(this);

//初始化控制面板

controlPanel = new JPanel();

controlPanel.add(addBtn);

controlPanel.add(deleteBtn);

controlPanel.add(updateBtn);

//该窗口使用BorderLayout布局

add(controlPanel, BorderLayout.NORTH);

add(scrollPane, BorderLayout.CENTER);

//设置表格单元格字体居中显示

DefaultTableCellRenderer render =

new DefaultTableCellRenderer();

render.setHorizontalAlignment(SwingConstants.CENTER);

table.getColumn("学号").setCellRenderer(render);

table.getColumn("姓名").setCellRenderer(render);

//设置表格宽度情况

DefaultTableColumnModel dcm =

(DefaultTableColumnModel)table.getColumnModel();

//设置表格显示的最好宽度,即此时表格显示的宽度。

dcm.getColumn(0).setPreferredWidth(60);

//设置表格通过拖动列可以的最小宽度。

dcm.getColumn(0).setMinWidth(45);

//设置表格通过拖动列可以的最大宽度。

dcm.getColumn(0).setMaxWidth(75);

//给表格设置行高

table.setRowHeight(35);

table.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent e) {

int row = table.getSelectedRow();

int col = table.getSelectedColumn();

System.out.println("编辑前:" + table.

getValueAt(row, col));

}

});

table.getModel().addTableModelListener(

new TableModelListener(){

public void tableChanged(TableModelEvent e) {

if(e.getType() == TableModelEvent.UPDATE) {

int row = e.getLastRow();

int col = e.getColumn();

System.out.println("编辑后:" +

table.getValueAt(row, col));

}

}

});

setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getSource() == addBtn) {

model.addRow(new Object[] {"003","王五","班级一","男"});

} else if (e.getSource() == deleteBtn) {

int row = table.getSelectedRow();

if (row == -1) {

JOptionPane.showMessageDialog(this, "请先选择一条记录!");

return;

}

model.removeRow(table.getSelectedRow());

} else if (e.getSource() == updateBtn) {

int row = table.getSelectedRow();

if (row == -1) {

JOptionPane.showMessageDialog(this, "请先选择一条记录!");

return;

}

table.setValueAt("测试", row, 1);

}

}

public static void main(String[] args){

new TableDemo();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值