资源描述
技术关键:
JTable控件用来显示和编辑常规的二维单元表。JTable有很多用来自定义其呈现和编辑的工具,同时提供了这些功能的默认设立。从而可以轻松地设立简朴表。
public void setRowHeight(int rowHeight)
行高
对于表头来讲这个方法不行。需要用到getTableHeader()方法
package com.swing02;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.UIManager;
public class ResizeTableTest extends JFrame {
private static final long serialVersionUID = 3602612L;
//面板容器
private JPanel contentPane;
//表格
private JTable table1;
//表格
private JTable table2;
public static void main(String[] args) {
try {
//皮肤
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ResizeTableTest frame = new ResizeTableTest();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public ResizeTableTest() {
addWindowListener(new WindowAdapter() {
@Override
public void windowActivated(WindowEvent e) {
do_this_windowActivated(e);
}
});
//标题
setTitle("设立表格的宽度与高度");
//关闭
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//大小及位置
setBounds(100, 100, 450, 300);
//面板容器
contentPane = new JPanel();
//面板容器边框
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
//添加面板容器边框
setContentPane(contentPane);
//面板容器布局格式
contentPane.setLayout(new GridLayout(1, 2, 5, 5));
//面板
JPanel panel1 = new JPanel();
//添加面板
contentPane.add(panel1);
//面板布局格式
panel1.setLayout(new BorderLayout(0, 0));
//标签
JLabel label1 = new JLabel("默认表格");
//标签内容水平居中
label1.setHorizontalAlignment(SwingConstants.CENTER);
//标签字体
label1.setFont(new Font("微软雅黑", Font.PLAIN, 16));
//面板添加标签
panel1.add(label1, BorderLayout.NORTH);
//滚动条
JScrollPane scrollPane1 = new JScrollPane();
//滚动条
panel1.add(scrollPane1, BorderLayout.CENTER);
//表格
table1 = new JTable();
//滚动条添加表格
scrollPane1.setViewportView(table1);
//面板2
JPanel panel2 = new JPanel();
//容器添加面板
contentPane.add(panel2);
//面板2布局格式
panel2.setLayout(new BorderLayout(0, 0));
//标签
JLabel label2 = new JLabel("自定义表格");
//标签对齐方式
label2.setHorizontalAlignment(SwingConstants.CENTER);
//标签字体
label2.setFont(new Font("微软雅黑", Font.PLAIN, 16));
//面板添加标签
panel2.add(label2, BorderLayout.NORTH);
//滚动条
JScrollPane scrollPane2 = new JScrollPane();
//添加滚动条
panel2.add(scrollPane2, BorderLayout.CENTER);
//表格2
table2 = new JTable();
//表格字体
table2.setFont(new Font("微软雅黑", Font.PLAIN, 14));
//表格行高
table2.setRowHeight(35);
//构造 JTableHeader,使用 cm 作为列模型对其进行初始化。
// table2.getTableHeader() 返回此 JTable 所使用的 tableHeader
JTableHeader header = table2.getTableHeader();
//设立字体
header.setFont(new Font("微软雅黑", Font.PLAIN, 16));
//设立表头的高度
header.setPreferredSize(new Dimension(header.getWidth(), 40));
//显示表
scrollPane2.setViewportView(table2);
}
protected void do_this_windowActivated(WindowEvent e) {
//表格模型
DefaultTableModel model = new DefaultTableModel();
//将表格模型中的数据清空
model.setRowCount(0);
//设立表头
model.setColumnIdentifiers(new Object[] { "排名", "语言" });
//增长行
model.addRow(new Object[] { "1", "Java" });
model.addRow(new Object[] { "2", "C" });
model.addRow(new Object[] { "3", "C#" });
//添加表内容
table1.setModel(model);
//添加表内容
table2.setModel(model);
}
}
展开阅读全文