創建可以滾動的表格
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class Example1 extends JFrame {
public static void main(String args[]) {
Example1 frame = new Example1();
frame.setVisible(true);
}
public Example1() {
super();
setTitle("創建可以滾動的表格");
setBounds(100,100,240,150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] columnNames = {"A","B"};//定義表格列數組民
String[][] tableValues = {{"A1","B1"},{"A2","B2"},{"A3","B3"},{"A4","B5"}};
JTable table = new JTable(tableValues,columnNames);
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane,BorderLayout.CENTER);
}
}
創建不可滾動的表格
利用構造方法JT able(Vector rowData,Vector columnNames)創建一個表格,並直接添加到容器中
import java.awt.BorderLayout;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
public class Example2 extends JFrame {
public static void main(String args[]) {
Example2 frame =new Example2();
frame.setVisible(true);
}
public Example2() {
super();
//setTitle("創建不可滾動的表格");
//setTitle();
setBounds(100,100,240,150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Vector<String>columnNameV = new Vector<>();
columnNameV.add("A");
columnNameV.add("B");
Vector<Vector<String>>tableValueV =new Vector<>();//定義表格數據向量
for(int row =1 ;row<6;row++)
{
Vector<String>rowV =new Vector<>();
rowV.add("A"+row);
rowV.add("B"+row);
tableValueV.add(rowV);
}
//創建指定表格列名和指定表格數據的表格
JTable table = new JTable(tableValueV,columnNameV);
//將表格添加到邊界佈局的中間
getContentPane().add(table,BorderLayout.CENTER);
JTableHeader tableHeader = table.getTableHeader();
getContentPane().add(tableHeader,BorderLayout.NORTH);
}
}
運行結果
定義表格
設置表格的背景、選擇表格時被選中的框的顏色等等
import java.awt.BorderLayout;
import java.awt.Color;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
public class Example3 extends JFrame {
public static void main(String args[]) {
Example3 frame =new Example3();
frame.setVisible(true);
}
public Example3() {
super();
setTitle("定義表格");
setBounds(100,100,500,375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane,BorderLayout.CENTER);
String[] columnNames = {"A","B","C","D","E","F","G"};
Vector<String> columnNameV = new Vector<>();
for(int column = 0 ;column<columnNames.length;column++) {
columnNameV.add(columnNames[column]+row);
}
Vector<Vector<String>> tableValueV =new Vector<>();
for(int row=1;row<21;row++)
{
Vector<String> rowV =new Vector<>();
for(int column =0;column<columnNames.length;column++)
{
rowV.add(columnNames[column]+row);
}
tableValueV.add(rowV);
}
JTable table = new MTable(tableValueV,columnNameV);
//關閉表格列的自動調整功能
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//選擇模式爲單選
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//被選擇行的背景爲黃色
table.setSelectionBackground(Color.YELLOW);
//被選擇行的文字顏色設置爲red
table.setSelectionForeground(Color.RED);
table.setRowHeight(30);//表格的行高爲30像素
scrollPane.setViewportView(table);
}
private class MTable extends JTable{
public MTable(Vector<Vector<String>>rowData,Vector<String>columnNames) {
super(rowData,columnNames);
}
public JTableHeader getTableHeader() {//定義表格頭
//獲得表格頭對象
JTableHeader tableHeader = super.getTableHeader();
tableHeader.setReorderingAllowed(false);//表格列不可以重排
DefaultTableCellRenderer hr = (DefaultTableCellRenderer);
tableHeader.getDefaultRenderer();
hr.setHorizontalAlignment(DefauTableCellRenderer.CENTER);
return tableHeader;
}
}
public TableCellRenderer getDefaultRenderer(class<?>)
}