怎样在指定的table单元格处生成下拉列表

原创 2007年09月23日 17:59:00
 在写table时花了本人几天的时间,最后终于搞定了,与大家共同分享。
以下是调用方法:
/****************************************************************/

DefaultTableModel model = new DefaultTableModel(); //
/*设置表格模型*/
model.setDataVector(rowDatas, tableHeadName);

/*表格使用模型*/
// JBTable table = new JBTable(tableModel);
JBTable table = new JBTable();
table.setRowSelectionAllowed(true); //add
table.setModel(model);
JTextField text = new JTextField(); //

JComboBox com_size = new JComboBox(); //字体大小
com_size.addItem("1");
com_size.addItem("2");
com_size.addItem("3");
com_size.addItem("4");
com_size.addItem("5");
com_size.addItem("6");

JBMutiTypeEditor com_edit = new JBMutiTypeEditor(text, com_size); //
TableColumn aColumn1 = table.getColumn("属性");
aColumn1.setCellEditor(com_edit);

/****************************************************************/
上边代码没什么特别的,关键在以下的类。

package jbpd.application;

import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.awt.*;
import javax.swing.table.*;
import java.util.EventObject;
import javax.swing.table.*;

class JBMutiTypeEditor
extends DefaultCellEditor {
JTable editingTable = new JTable();
JTextField textComponent;
JComboBox comboComponent;
boolean textOrNot = true;

public JBMutiTypeEditor(JTextField text, JComboBox combo) {
super(text);
textComponent = text;
comboComponent = combo;
}

public void setTextOrNot(boolean textOrNot) {
this.textOrNot = textOrNot;
}

public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected,
int row, int column) {
editingTable = table;
String flag = (String) table.getValueAt(row, 0);
//与jbpage表中的“页面字体”列对应
if (flag.equals("存储方式") || flag.equals("是否被选中")) {
String item = (value != null) ? value.toString() : "1";
DefaultComboBoxModel model = (DefaultComboBoxModel) comboComponent.
getModel();
for (int i = 0; i < model.getSize(); i++) {
String aItem = (String) model.getElementAt(i);
if (aItem.equals(item)) {
comboComponent.setSelectedIndex(i);
}
}
return comboComponent;
}
if (flag.equals("字体大小") && row == 3) {
String item = (value != null) ? value.toString() : "1";
DefaultComboBoxModel model = (DefaultComboBoxModel) comboComponent.
getModel();
for (int i = 0; i < model.getSize(); i++) {
String aItem = (String) model.getElementAt(i);
if (aItem.equals(item)) {
comboComponent.setSelectedIndex(i);
}
}
return comboComponent;
}
else {
textComponent.setText( (value != null) ? value.toString() : "");
return textComponent;
}
}

public boolean stopCellEditing() {
JTable aTable = this.editingTable;
int rowNo = aTable.getEditingRow();
String flag = "";
if (rowNo != -1) {
flag = (String) aTable.getValueAt(rowNo, 0);
}
if (flag.equals("存储方式")|| flag.equals("是否被选中")) {
this.delegate.setValue(comboComponent.getSelectedItem());
}
if(flag.equals("字体大小")){
this.delegate.setValue(comboComponent.getSelectedItem());
}
return super.stopCellEditing();
}
}

下拉框的内容通过js插入到table中

  • 2014年07月10日 15:30
  • 5KB
  • 下载

JXL添加下拉框

  Label lblColumn = null;WritableSheet ws = wb.createSheet("标签", 0);lblColumn = new Label(12, nRow, ...
  • shuijinglianyi
  • shuijinglianyi
  • 2008年03月26日 14:07
  • 3945

关于jxl使用心得

jxl
  • fchen_123
  • fchen_123
  • 2016年01月07日 15:40
  • 683

怎么做table 表格下拉树

这样的效果需要两部,第一步,加载一级目录, 然后,点击触发事件,加载二级目录,插入tr $(function(){ initGridSource2(); }); initGridSo...
  • u014236541
  • u014236541
  • 2016年09月13日 16:59
  • 1323

TableModel应用实例--新增数据及时刷新显示

import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;...
  • jsship
  • jsship
  • 2008年03月19日 10:45
  • 2297

怎样在指定的table单元格处生成下拉列表

 在写table时花了本人几天的时间,最后终于搞定了,与大家共同分享。 以下是调用方法: /******************************************************...
  • yjmtv0817
  • yjmtv0817
  • 2007年09月23日 17:59
  • 400

JS获取表格单元格坐标及给指定单元格赋值

JS获取表格单元格坐标及给指定单元格赋值 说明: 本文所述内容适用于通过JS方法,获取table中td标签坐标,即td标签所在单元格的行号、列号。以及为指定的单元格赋值。(如有不正确的地方,...
  • domainid
  • domainid
  • 2016年12月18日 16:01
  • 1053

jquery获取table指定单元格

//获取第4行第二个单元格对象 $('#table).find("tr").eq(3).find("td").eq(1)
  • Sky_Cat
  • Sky_Cat
  • 2016年12月24日 10:51
  • 2581

TableModel方法:

类层次结构图:Java.lang.Object--Java.awt.Component--Java.awt.Container--Javax.swing.JComponent--Javax.swing...
  • studyvcmfc
  • studyvcmfc
  • 2009年08月03日 19:35
  • 11498

怎样在指定的table单元格处生成下拉列表

在写table时花了本人几天的时间,最后终于搞定了,与大家共同分享。以下是调用方法:/*********************************************************...
  • bailang71
  • bailang71
  • 2005年01月04日 19:07
  • 1020
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样在指定的table单元格处生成下拉列表
举报原因:
原因补充:

(最多只允许输入30个字)