📄 tableframe.java
字号:
import javax.swing.JFrame;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class TableFrame extends JFrame {
private JTable bookTable;
private BookTableModel bookTableModel;
//改类用来处理用户鼠标点击JTable表头的事件
private class TableHeaderGesture extends MouseAdapter {
public void mouseClicked(MouseEvent me) {
int columnIndex = bookTable.getTableHeader().columnAtPoint(me.getPoint());
if(columnIndex != -1) {
bookTableModel.sortColumn(columnIndex);
}
}
}
public TableFrame() {
super("Order JTable Sample");
//构造用于JTable的模型对象
bookTableModel = new BookTableModel();
//构造JTable的对象,并且使用指定的模型
bookTable = new JTable(bookTableModel);
//初始化模型中的数据
Vector books = new Vector();
books.add(new Book("NO0001", "Thinking in java", "david", 98, "This is a good book"));
books.add(new Book("NO0002", "MFC技术内幕", "mary", 56, "This is a good book"));
books.add(new Book("NO0003", "Java编程实例", "nice", 76, "This is a good book"));
books.add(new Book("NO0004", "J2EE学习指南", "jack", 87, "This is a good book"));
books.add(new Book("NO0005", "精通EJB第二版", "steven", 68, "This is a good book"));
books.add(new Book("NO0006", "数据结构与算法", "phil", 77, "This is a good book"));
books.add(new Book("NO0007", "JSP2.0技术规范", "robbin", 55, "This is a good book"));
books.add(new Book("NO0008", "C++入门", "white", 108, "This is a good book"));
books.add(new Book("NO0009", "Oracle数据管理", "joan", 43, "This is a good book"));
bookTableModel.addBooks(books);
//将JTable添加到Frame中
this.getContentPane().add(new JScrollPane(bookTable));
//注册用户点击JTable表头的事件监听器
bookTable.getTableHeader().addMouseListener(new TableHeaderGesture());
//设定JFrame的大小和位置
this.setSize(500, 400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -