?? testdefaulttablemodel.java
字號:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;
import javax.swing.*;
import javax.swing.table.*;
/**
* Description:
* <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class TestDefaultTableModel
{
JFrame mainWin = new JFrame("管理數據行、數據列");
final int COLUMN_COUNT = 5;
DefaultTableModel model;
JTable table;
//用于保存被隱藏列的List集合
ArrayList<TableColumn> hiddenColumns = new ArrayList<TableColumn>();
public void init()
{
model = new DefaultTableModel(COLUMN_COUNT ,COLUMN_COUNT);
for (int i = 0; i < COLUMN_COUNT ; i++ )
{
for (int j = 0; j < COLUMN_COUNT ; j++ )
{
model.setValueAt("老單元格值 " + i + " " + j , i , j);
}
}
table = new JTable(model);
mainWin.add(new JScrollPane(table), BorderLayout.CENTER);
//為窗口安裝菜單
JMenuBar menuBar = new JMenuBar();
mainWin.setJMenuBar(menuBar);
JMenu tableMenu = new JMenu("管理");
menuBar.add(tableMenu);
JMenuItem hideColumnsItem = new JMenuItem("隱藏選中列");
hideColumnsItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
//獲取所有選中列的索引
int[] selected = table.getSelectedColumns();
TableColumnModel columnModel = table.getColumnModel();
//依次把每一個選中的列隱藏起來,并使用List把這些列保存起來
for (int i = selected.length - 1; i >= 0; i--)
{
TableColumn column = columnModel.getColumn(selected[i]);
table.removeColumn(column);
//把隱藏的列保存起來,確保以后可以顯示出來
hiddenColumns.add(column);
}
}
});
tableMenu.add(hideColumnsItem);
JMenuItem showColumnsItem = new JMenuItem("顯示隱藏列");
showColumnsItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
//把所有隱藏列依次顯示出來
for (TableColumn tc : hiddenColumns)
{
//依次把所有隱藏的列顯示出來
table.addColumn(tc);
}
//清空保存隱藏列的List集合
hiddenColumns.clear();
}
});
tableMenu.add(showColumnsItem);
JMenuItem addColumnItem = new JMenuItem("插入選中列");
addColumnItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
//獲取所有選中列的索引
int[] selected = table.getSelectedColumns();
TableColumnModel columnModel = table.getColumnModel();
//依次把選中的列添加到JTable之后
for (int i = selected.length - 1; i >= 0; i--)
{
TableColumn column = columnModel.getColumn(selected[i]);
table.addColumn(column);
}
}
});
tableMenu.add(addColumnItem);
JMenuItem addRowItem = new JMenuItem("增加行");
addRowItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
//創建一個String數組作為新增行的內容
String[] newCells = new String[COLUMN_COUNT];
for (int i = 0; i < newCells.length; i++)
{
newCells[i] = "新單元格值 " + model.getRowCount() + " " + i;
}
//向TableModel中新增一行。
model.addRow(newCells);
}
});
tableMenu.add(addRowItem);
JMenuItem removeRowsItem = new JMenuItem("刪除選中行");
removeRowsItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
//獲取所有選中行
int[] selected = table.getSelectedRows();
//依次刪除所有選中行
for (int i = selected.length - 1; i >= 0; i--)
{
model.removeRow(selected[i]);
}
}
});
tableMenu.add(removeRowsItem);
mainWin.pack();
mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWin.setVisible(true);
}
public static void main(String[] args)
{
new TestDefaultTableModel().init();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -