⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tabletest.java

📁 JAVA编程百例书中各章节的所有例子的源代码,包括套接字编程
💻 JAVA
字号:
package ch02.section08;

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

/**
 * 这是一个表格控件的例子
 */
public class TableTest
    extends JPanel {
  private boolean DEBUG = true;

  public TableTest() {
    super(new GridLayout(1, 0));
    JTable table = new JTable(new MyTableModel());
    table.setPreferredScrollableViewportSize(new Dimension(500, 90));
    //实现一个滚动容器
    JScrollPane scrollPane = new JScrollPane(table);
    //在容器中添加这个滚动容器
    add(scrollPane);
  }

  class MyTableModel
      extends AbstractTableModel {
    //表的列名
    private String[] columnNames = {
        "姓名",
        "性别",
        "住址",
        "年龄",
        "婚否"};

    //表的数据
    private Object[][] data = {
        {
        "刘成", "男",
        "海南省", new Integer(45), new Boolean(true)}
        , {
        "刘小春", "男",
        "海南省", new Integer(13), new Boolean(false)}
        , {
        "江国华", "男",
        "北京市", new Integer(45), new Boolean(false)}
        , {
        "徐世风", "男",
        "北京市", new Integer(56), new Boolean(true)}
        , {
        "林雨", "女",
        "北京市", new Integer(15), new Boolean(false)}
    };

    //返回列数
    public int getColumnCount() {
      return columnNames.length;
    }

    //返回行数
    public int getRowCount() {
      return data.length;
    }

    //返回列名
    public String getColumnName(int col) {
      return columnNames[col];
    }

    //返回二维数组的一个元素
    public Object getValueAt(int row, int col) {
      return data[row][col];
    }

    public Class getColumnClass(int c) {
      return getValueAt(0, c).getClass();
    }

    /*
     * 是否可以被编辑.
     */
    public boolean isCellEditable(int row, int col) {
      if (col < 2) {
        return false;
      }
      else {
        return true;
      }
    }

    /*
     * 将数据设为指定的参数
     */
    public void setValueAt(Object value, int row, int col) {
      if (DEBUG) {
        System.out.println("将 " + row + " 行," + col
                           + " 列值改为 " + value
                           + " (类型是 "
                           + value.getClass() + ")");
      }

      data[row][col] = value;
      fireTableCellUpdated(row, col);

      if (DEBUG) {
        System.out.println("更新后的数据:");
        printDebugData();
      }
    }

    private void printDebugData() {
      int numRows = getRowCount();
      int numCols = getColumnCount();

      for (int i = 0; i < numRows; i++) {
        System.out.print("row " + i + ":");
        for (int j = 0; j < numCols; j++) {
          System.out.print("  " + data[i][j]);
        }
        System.out.println();
      }
      System.out.println("--------------------------");
    }
  }

  /**
   *显示窗口
   */
  private static void createAndShowGUI() {

    JFrame.setDefaultLookAndFeelDecorated(true);
    //实现一个窗体
    JFrame frame = new JFrame("TableTest");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //实现一个content panes
    TableTest newContentPane = new TableTest();
    newContentPane.setOpaque(true);
    frame.setContentPane(newContentPane);
    frame.pack();
    frame.setVisible(true);
  }

  public static void main(String[] args) {

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        createAndShowGUI();
      }
    });
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -