首先上步骤干货:
第一步:一维数组,存储表头内容;
第二步:二维数组,存储表格内容;
第三步:创建模板,用两个数组作参数创建表格模板;
第四步:创建表格,用模板作参数创建表格对象。
第五步:创建滚动条,用表格作参数创建滚动条。
第六步:添加到容器和窗口,将表格添加到容器(也就是滚动条),再将容器添加到窗口,设置窗口可见。
代码如下:(我本人很讨厌直接贴大段代码不讲步骤,但是我会一步步改的,这是我发的第一篇博客,后面会一步步改进的!讲解的内容也尽量做到了详细,如果有..有错误的地方,或者有更好的能改进的地方,非常欢迎指出来!)
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
* 有逻辑、迅速高效地用简单六步,创建属于自己的JTable表格——注重实用
*
* @author 身高不足170的巨人
*/
public class JTablePanel extends JPanel {
private static final long serialVersionUID = 1L;
//
// 定义全局变量
//
// model 是表格的模型类的,对象。也可以说是表格的模板。
// 用model创建表格,在后期会有更大的拓展空间,很多功能在model创建表格的基础上,会更方便去学习。比如添加行、获得行数、获得列数等等,都很方便,所以我推荐初学时,用model创建表格
private DefaultTableModel model;
// table 是表格类的,对象。
private JTable table;
// scrollPane 是表格滚动条类的,对象。 表格必须添加到滚动条(这是一个容器类,按钮、文本框等等都是组件,组件必须放到容器类中)中,才能显示出来。
private JScrollPane scrollPane;
/**
* 表格面板的构造函数
*/
public JTablePanel() {
// 第一步:创建表头,表头只有一行,所以一维数组就够了,数组的每个元素对应表格最上面一行,从左到右的各个表头
String[] columnNames = { "表头1", "表头2", "表头3" };
// 第二步,创建表的内容,表的内容可以有很多很多行,所以要二维数组,前面的下标代表从上往下第几行,后面的下标代表每一行中从左到右的第几列(计算机是从0开始数数,相信在看的你是可以理解她的吧?),也就是第几个单元格。组合起来,就可以用坐标的形式表示每个单元格的位置。
String[][] rowData = { { "第1行内容1", "第1行内容2", "第1行内容3" } };
// 第三步,用上面的一维数组、二维数组创建表格的模型。所谓模型模型,肯定要有表头和内容呀,不然怎么知道后面每行的内容是啥呢?不然我创建表格,表格的内容是啥呢?就都不知道了。
model = new DefaultTableModel(rowData, columnNames); // 参数的位置是,二维数组在前,表头在后(建议多看源码,我现在正在学swing,也有慢慢开始阅读源码,确实看源码能学到好多东西,而且不是刻意去看源码学东西,是看明白了源码,就知道某些方法怎么用了,下次遇到的时候自然就想起了)
// 第四步,用上面的模型,或者说模板, 创建表格对象。 要用模型,那就把模型对象当作参数传给方法呗~~
table = new JTable(model);
// 第五步,将上面的表格的对象添加到滚动条中。滚动条是一个容器,容器用来装组件,然后组件才能被看到。
scrollPane = new JScrollPane(table);
// 设置滚动条的大小。这个大小决定了表格的大小,毕竟吧,500ml的矿泉水瓶装不了1000ml水,对吧?这里的滚动条容器就是矿泉水瓶,它固定了表格的大小。
scrollPane.setSize(100, 100);
// 第六步,添加到容器和窗口。这个类本身是面板,所以有add方法,add过后,表格所在的容器,才会被添加到这个面板上(水在瓶子里,瓶子拿走了,水自然就拿走了;钱在钱包里,钱包拿走,钱就自然归你了~~),然后把这个面板类的对象,添加到一个窗口中,就能看到了
add(scrollPane);
}
/**
* 主函数
*
* @param args
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
// 创建窗口对象。
// 要展示,必须要有窗口呀,没有窗口,那创建的面板不就没地方放了吗?而表格又被添加到面板上的,所以表格也就没有在窗口里,也就不能显示出来了。
JFrame frame = new JFrame();
// 设置窗口属性的基本套路:
// 设置窗口标题
frame.setTitle("简单六步,有逻辑、高效迅速地创建一份自己的表格");
// 不使用默认布局,方便我们自己调整表格的位置
frame.setLayout(null);
// 设置窗口的大小
frame.setSize(500, 500);
// 把窗口所在的面板替换到窗口本身自带的面板,这样就能显示了,而且新的面板会充满整个窗口
frame.setContentPane(new JTablePanel());
// 把窗口出现的初始位置设置在屏幕中央,更方面使用、调试等等等等等等
frame.setLocationRelativeTo(null);
// 让窗口可见,由方法名可以直观地明白意思哈(英文对编程不是那么地重要,不会英文也能学编程;英语能力决定编程能力的上限,自己的努力决定能力的下限~~)
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
从目前自己的学习感受来看,swing或者说GUI编程,最重要的是自己要去看源码或者阅读和这一篇博客类似的教程,先模仿再练习,接着创新,最后熟练。主要就是熟悉所有设置好的方法的过程,自由组合罢了。据说,python做简单版本的人工智能也是侧重于第三方方法的堆砌,所以呀,大噶(大家)就记住一个字,练,练,练吧~~
回到正题,总结来说,有六步。
第一步:关键词:一维数组。一维数组,存储表头内容;
第二步:关键词:二维数组。二维数组,存储表格内容;
第三步:关键词:创建模板。用两个数组作参数创建表格模板;
第四步:关键词:创建表格。用模板作参数创建表格对象。
第五步:关键词:创建滚动条。用表格作参数创建滚动条。
第六步:关键词:添加到容器和窗口。将表格添加到容器(也就是滚动条),再将容器添加到窗口,设置窗口可见。