程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> [JAVA100例]025、表格

[JAVA100例]025、表格

編輯:JAVA編程入門知識
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;


  import javax.swing.DefaultCellEditor;


  import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.awt.*;
import java.awt.event.*;
/**
 * <p>Title: 自己定義的表格</p>
 * <p>Description: 繼承AbstractTableModel類,實現自己的表格</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Filename: MyTableDemo.java</p>
 * @version 1.0
 */
public class MyTableDemo extends JFrame {


  public MyTableDemo() {
    super("MyTableDemo");
    //聲明自己的表格,並添加到JTable中
    MyTableModel myModel = new MyTableModel();
    JTable table = new JTable(myModel);
    table.setPreferredScrollableViewportSize(new Dimension(500, 70));


  //將表格添加到可滾動的面板
    JScrollPane scrollPane = new JScrollPane(table);


  //將滾動面板添加到窗體
    getContentPane().add(scrollPane, BorderLayout.CENTER);
    //添加監聽
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
  }
/**
 * <p>Title: 定義自己的表格模式</p>
 * <p>Description: 通過繼承AbstractTableModel類來定義自己的表格模式,
 *  這裡使得第三個以後才可以編輯</p>
 */
  class MyTableModel extends AbstractTableModel {
    //定義表頭
    final String[] columnNames = {"姓名",
                   "性別",
                   "學歷",
                   "年齡",
                   "是否已婚"};
    //初始化表數據
    final Object[][] data = {
      {"張三", "男",
       "大本", new Integer(25), new Boolean(false)},
      {"李四", "男",
       "大本", new Integer(33), new Boolean(true)},
      {"王五", "男",
       "高中", new Integer(20), new Boolean(false)},
      {"趙倩", "女",
       "大專", new Integer(26), new Boolean(true)},
      {"周大", "男",
       "大本", new Integer(24), new Boolean(false)}
    };
/**
 *<br>方法說明:繼承AbstractTableModel必須實現的方法
 *<br>輸入參數:
 *<br>返回類型:int 列數
 */
    public int getColumnCount() {
      return columnNames.length;
    }
/**
 *<br>方法說明:繼承AbstractTableModel必須實現的方法
 *<br>輸入參數:
 *<br>返回類型:int 列數
 */    
    public int getRowCount() {
      return data.length;
    }
/**
 *<br>方法說明:繼承AbstractTableModel必須實現的方法
 *<br>輸入參數:
 *<br>返回類型:String 列名
 */
    public String getColumnName(int col) {
      return columnNames[col];
    }
/**
 *<br>方法說明:繼承AbstractTableModel必須實現的方法,獲取表格中的數據
 *<br>輸入參數:int row 行數
 *<br>輸入參數:int col 列數
 *<br>返回類型:Object 數據對象
 */
    public Object getValueAt(int row, int col) {
      return data[row][col];
    }
/**
 *<br>方法說明:實現這個方法使得最後一列不是顯示true和false。而是使用檢查盒
 *<br>輸入參數:
 *<br>返回類型:
 */
    public Class getColumnClass(int c) {
      return getValueAt(0, c).getClass();
    }
/**
 *<br>方法說明:這個方法不一定需要實現。這裡是為了定義可編輯的列
 *<br>輸入參數:
 *<br>返回類型:boolean 是否可編輯
 */
    public boolean isCellEditable(int row, int col) {
      if (col < 2) {
        return false;
      } else {
        return true;
      }
    }
/**
 *<br>方法說明:實現此方法,獲得編輯數據。
 *<br>輸入參數:
 *<br>返回類型:
 */
    public void setValueAt(Object value, int row, int col) {
        System.out.println("修改數據位置: " + row + "," + col
                  + " 新數據為: " + value);

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved