日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java表格标题栏_Java MFixedColumnTable (提供行标题栏的表格)

發布時間:2025/4/5 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java表格标题栏_Java MFixedColumnTable (提供行标题栏的表格) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可以以一列或多列為行標題欄。

預覽:

代碼:

package com.han;

import java.awt.BorderLayout;

import java.util.Vector;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JViewport;

import javax.swing.ListSelectionModel;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

import javax.swing.table.AbstractTableModel;

public class MFixedColumnTable extends JPanel {

/**

*

*/

private static final long serialVersionUID = -8001758880985479654L;

private Vector columnNameV; // declare the table column name vector

private Vector> tableValueV; // declare the table value

// vector

private int fixedColumn = 1; // the fixed column number

private JTable fixedColumnTable;

private FixedColumnTableModel fixedColumnTableModel;

private JTable floatingColumnTable;

private FloatingColumnTableModel floatingColumnTableModel;

private class FixedColumnTableModel extends AbstractTableModel { // inner class

/**

*

*/

private static final long serialVersionUID = 3935656415101599023L;

@Override

public int getRowCount() {

// TODO Auto-generated method stub

return tableValueV.size();

}

@Override

public int getColumnCount() {

// TODO Auto-generated method stub

return fixedColumn;

}

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

// TODO Auto-generated method stub

return tableValueV.get(rowIndex).get(columnIndex);

}

@Override

public String getColumnName(int columnIndex) {

return columnNameV.get(columnIndex);

}

}

private class FloatingColumnTableModel extends AbstractTableModel {

/**

*

*/

private static final long serialVersionUID = -2481466672947191281L;

@Override

public int getRowCount() {

return tableValueV.size();

}

@Override

public int getColumnCount() {

return columnNameV.size() - fixedColumn;

}

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

return tableValueV.get(rowIndex).get(columnIndex + fixedColumn);

}

@Override

public String getColumnName(int columnIndex) {

return columnNameV.get(columnIndex + fixedColumn);

}

}

private class MListSelectionListener implements ListSelectionListener {

boolean isFixedColumnTable = true;

public MListSelectionListener(boolean isFixedColumnTable) {

this.isFixedColumnTable = isFixedColumnTable;

}

@Override

public void valueChanged(ListSelectionEvent e) {

// TODO Auto-generated method stub

if (isFixedColumnTable) {

int row = fixedColumnTable.getSelectedRow();

floatingColumnTable.setRowSelectionInterval(row, row);

} else {

int row = floatingColumnTable.getSelectedRow();

fixedColumnTable.setRowSelectionInterval(row, row);

}

}

}

public MFixedColumnTable(Vector columnNameV,

Vector> tableValueV, int fixedColumn) {

super();

setLayout(new BorderLayout());

this.columnNameV = columnNameV;

this.tableValueV = tableValueV;

this.fixedColumn = fixedColumn;

// create fixedColumnTable

fixedColumnTableModel = new FixedColumnTableModel();

fixedColumnTable = new JTable(fixedColumnTableModel);

ListSelectionModel fixed = fixedColumnTable.getSelectionModel();

fixed.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

fixed.addListSelectionListener(new MListSelectionListener(true));

// create floatingColumnTable

floatingColumnTableModel = new FloatingColumnTableModel();

floatingColumnTable = new JTable(floatingColumnTableModel);

floatingColumnTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

ListSelectionModel floating = floatingColumnTable.getSelectionModel();

floating.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

floating.addListSelectionListener(new MListSelectionListener(false));

// create scrollPane

JScrollPane scrollPane = new JScrollPane();

scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER,

fixedColumnTable.getTableHeader());

JViewport viewport = new JViewport();

viewport.setView(fixedColumnTable);

viewport.setPreferredSize(fixedColumnTable.getPreferredSize());

scrollPane.setRowHeaderView(viewport); // viewport 視口

scrollPane.setViewportView(floatingColumnTable);

add(scrollPane, BorderLayout.CENTER);

}

}

然后,用一個測試提供行標題欄的表格的代碼:

package com.han;

import java.awt.BorderLayout;

import java.util.Vector;

import javax.swing.JFrame;

/**

* Provide a fixed column in a table

*

* @author Gaowen

*

*/

public class JTable4 extends JFrame {

/**

*

*/

private static final long serialVersionUID = 805308369080023303L;

public JTable4() {

super();

setTitle("提供行標題欄的表格");

setBounds(100, 100, 500, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Vector columnNameV = new Vector();

columnNameV.add("日期");

for (int i = 1; i < 21; i++) {

columnNameV.add("商品" + i);

}

Vector> tableValueV = new Vector>();

for (int row = 1; row < 31; row++) {

Vector rowV = new Vector();

rowV.add(row);

for (int col = 0; col < 20; col++) {

rowV.add((int) (Math.random() * 1000));

}

tableValueV.add(rowV);

}

final MFixedColumnTable panel = new MFixedColumnTable(columnNameV,

tableValueV, 1);

getContentPane().add(panel, BorderLayout.CENTER);

}

public static void main(String[] args) {

// TODO Auto-generated method stub

JTable4 frame = new JTable4();

frame.setVisible(true);

}

}

這是繼前幾個表格使用和操作的后續,講解了提供行標題欄的表格的實現方法,以幫助讀者拓寬表格的設計思路,同時這也是一種很適用的表格形式。

總結

以上是生活随笔為你收集整理的java表格标题栏_Java MFixedColumnTable (提供行标题栏的表格)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: sesese99| 日韩在线视频观看免费 | 四虎影库在线播放 | 国产午夜视频在线观看 | 国产精品自拍视频一区 | 美国爱爱视频 | 国产一区在线看 | 性色一区二区三区 | 精品黑人一区二区三区久久 | 日韩中文字幕免费在线观看 | 男女性高潮免费网站 | 久久精品国产亚洲av嫖农村妇女 | 中国毛片视频 | 99视频国产精品 | 婷婷伊人综合 | 好吊日在线| 国产美女精品人人做人人爽 | 日韩在线精品强乱中文字幕 | 欧美成人精品在线视频 | 欧美成人精品网站 | 美女扒开粉嫩尿口 | 精品国产综合区久久久久久 | 国产精品美女久久久网av | 久久机热这里只有精品 | 51av视频 | 看黄色一级大片 | 午夜色av | 一区二区 亚洲 | 日韩熟妇一区二区三区 | 亚洲不卡中文字幕无码 | 亚洲图片欧美视频 | 亚洲精品二 | 黄色工厂这里只有精品 | 色噜噜色综合 | 国产又粗又猛又爽又黄av | 天天操综合网 | 国产自产一区二区 | 91色片| 女人18毛片水真多18精品 | 婷婷视频一区二区三区 | 婷婷激情六月 | 俺啪也 | 深夜福利一区二区 | 性生交大片免费看女人按摩 | 精品一区二区中文字幕 | 国产免费久久久 | 免费看爱爱视频 | 日本高清在线观看 | 日韩精品一区二区亚洲av观看 | 9i在线看片成人免费 | 超碰网站在线观看 | 亚洲一级片av | 思思久久精品 | 精品视频一区二区三区在线观看 | www.热久久 | 91亚洲国产成人久久精品网站 | 老熟妇高潮一区二区三区 | a毛片毛片av永久免费 | 福利资源在线 | 欧美一区二区黄片 | 蜜桃av网站| 热久久久久久久 | 一区二区三区91 | 91视频免费网站 | 男人添女人囗交视频 | 手机在线成人 | 亚洲男女视频在线观看 | 日日射影院 | 成人午夜视频免费在线观看 | 黄色大片aaa | 国产精品日韩电影 | 少妇又色又紧又黄又刺激免费 | 51调教丨国产调教视频 | 日日干夜夜撸 | 香蕉久久夜色精品国产使用方法 | 欧美成人一区在线 | 国产黄色精品视频 | 大象传媒成人在线观看 | 91麻豆精品在线 | 久久亚洲影院 | 久久久无码人妻精品无码 | 狠色综合7777夜色撩人 | 福利片av| 国产成人无码AA精品区 | 超碰中文字幕 | 国产sm调教视频 | 在线日本中文字幕 | 国产精品久久综合 | 国产福利av | www日日日 | 又黄又爽又色视频 | 久久国产一二三 | 快播视频在线观看 | 亚洲综合激情在线 | 色汉综合| 欧美高清久久 | 日韩黄色片免费看 | 久久狠| 日本久久亚洲 |