2011年4月19日
<Java> JVA408-員工基本資料表
這題重點:
1. 表格的使用
2. AbstractTableModel類別改寫
===============================
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
public class JVA408 extends JFrame{
JTable myTable;
JScrollPane myPanel;
TableModel myModel;
//JComboBox cbStd
public JVA408(){
setTitle("員工基本資料表");
//建立 Table Model
myModel = new EmployeeTable();
myTable = new JTable(myModel);
myPanel = new JScrollPane(myTable);
//將表格物件和ScrollPanel加到JFrame物件上
getContentPane().add(myPanel, "Center");
//設定每一個ROW的高度
myTable.setRowHeight(25);
//初始ComboBox值,並加入表格中
String std[] = {"博士","碩士","大學","專科"};
JComboBox cbStd = new JComboBox(std);
/*
################################
請在此處加上設定ComboBox的原始碼
################################
*/
TableColumnModel tcm = myTable.getColumnModel(); //
tcm.getColumn(2).setCellEditor(new DefaultCellEditor(cbStd));//
//顯示JFrame
setBounds(100, 100, 500, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args){
new JVA408();
}
}
//***************自定表格模型*******************
class EmployeeTable extends AbstractTableModel{
//設定每一列的資料,設定欄位名稱
/*
#####################################
請在此處加上設定Table原始資料的程式碼
#####################################
*/
String header[] = {"員工編號","姓名","學歷","姓名","備考"};
Object obj[][];
public EmployeeTable(){
obj = new Object[][]{
new Object[]{"3011","古怡芳","博士",false,""},
new Object[]{"3012","梁金龍","碩士",true,""},
new Object[]{"3013","林庭羽","大學",false,""},
new Object[]{"3014","陳億","碩士",true,""},
new Object[]{"3015","陳淑卿","大學",false,""},
};
}
/*
##############################################################
請在此處加上顯示Table原始內容的程式碼,您可以考慮重寫下列方法:
一、getRowCount()
二、getColumnCount()
三、getValueAt()
四、getColumnClass
五、getColumnName
六、isCellEditable
##############################################################
*/
public int getRowCount(){
return obj.length;
}
public int getColumnCount(){
return obj[0].length;
}
public Object getValueAt(int i, int j){
return obj[i][j];
}
public Class getColumnClass(int j){
return obj[0][j].getClass();
}
public String getColumnName(int j){
return header[j];
}
public boolean isCellEditable(int i ,int j){
if(j==2||j==3||j==4)
return true;
return false;
}
public void setValueAt(Object o,int i,int j){
obj[i][j] = o;
}
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言