package menu;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
import javafx.scene.control.TableColumn;
public class TableDemo extends JFrame{
static JTable table;
public TableDemo() {
setSize(600, 600);
setLocationRelativeTo(null);
/*创建表格*/
DefaultTableModel model = new DefaultTableModel();
model.addColumn("编号",new Vector<Integer>());
model.addColumn("书名", new Vector<String>());
model.addColumn("作者", new Vector<String>());
model.addColumn("是否选中", new Vector<String>());
table = new JTable(model);
JScrollPane jp = new JScrollPane(table);
for(int i = 0;i < 20 ;i ++) {
model.addRow(new Vector<String>());
}
JTableHeader head = table.getTableHeader();
//设置表头的大小
head.setPreferredSize(new Dimension(head.getWidth(),30));
//设置表头字体大小
head.setFont(new Font("宋体",Font.BOLD,16));
//设置表格的行宽
table.setRowHeight(30);
//设置表格行中字体大小
table.setFont(new Font("宋体",Font.ROMAN_BASELINE,13));
/*设置表格中的内容居中*/
DefaultTableCellRenderer renderer=new DefaultTableCellRenderer();
renderer.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
table.setDefaultRenderer(Object.class, renderer);
/*定义复选框*/
JCheckBox box = new JCheckBox();
/*getColumn()中数字填对应的第几行添加复选框*/
table.getColumnModel().getColumn(3).setCellRenderer(new TableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,int row, int column) {
/*设置当复选框被选中整行被渲染*/
box.setSelected(isSelected);
/*设置复选框在单元格中居中*/
box.setHorizontalAlignment((int) 0.5f);
return box;
}
});
this.add(jp);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
TableDemo t = new TableDemo();
}
}
效果: