社区
Java SE
帖子详情
JTable中如何设置单元格一部分可选一部分不可选
houname
2007-09-27 04:47:29
JTable中如何设置单元格一部分可选一部分不可选
...全文
534
11
打赏
收藏
JTable中如何设置单元格一部分可选一部分不可选
JTable中如何设置单元格一部分可选一部分不可选
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
houname
2007-10-05
打赏
举报
回复
谢谢帮忙,结贴
yuyu622
2007-10-01
打赏
举报
回复
学习一下
UNDEAD_YANG
2007-09-30
打赏
举报
回复
import java.awt.BorderLayout;
import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
public class CellSelected extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 5829056027287719130L;
public CellSelected()
{
super("Table");
String value[][]={
{"1","2","3","4","5"},
{"1","2","3","4","5"},
{"1","2","3","4","5"},
{"1","2","3","4","5"},
{"1","2","3","4","5"}
};
String columnName[]={"col1","col2","col3","col4","col5"};
MyTableModel model=new MyTableModel(value,columnName);
MyJTable table=new MyJTable(model);
table.setRowSelectionAllowed(false);
table.setCellSelectionEnabled(true);
TableColumnModel colmodel=table.getColumnModel();
for(int index=0;index<columnName.length;index++)
{
TableColumn tc = colmodel.getColumn(index);
JTextField editor=new JTextField();
DefaultCellEditor cellEditor=new DefaultCellEditor(editor);
cellEditor.setClickCountToStart(1);
tc.setCellEditor(cellEditor);
}
this.add(new JScrollPane(table),BorderLayout.CENTER);
this.setSize(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String args[])
{
new CellSelected();
}
}
class MyTableModel extends DefaultTableModel
{
public MyTableModel(Object[][] value,Object[] columnName)
{
super(value,columnName);
}
public boolean isCellEditable(int row, int column)
{
return false;
}
}
class MyJTable extends JTable
{
public MyJTable(TableModel tm)
{
super(tm);
}
public boolean isCellSelected(int row, int column)
{
if(row<2)
{
return false;
}
else if(column<2)
{
return false;
}
else
return super.isCellSelected(row, column);
}
}
程序设置行数小于2和列小于2的单元格不被选中,你可以根据需要自己设置,记得结帐!!
UNDEAD_YANG
2007-09-30
打赏
举报
回复
重写JTable类的isCellSelected方法
shaot399
2007-09-29
打赏
举报
回复
不行吧,怎么能不可选呢!
houname
2007-09-29
打赏
举报
回复
jtable可已设置单元格可选或不可选但都是全部的,我的需求是一部分可选一部分不可选。郁闷呀!有高手实现过吗?帮帮忙!分不够可以加。
houname
2007-09-28
打赏
举报
回复
to ddpie(似水无痕)
谢谢帮忙,但是我要实现的是单元格一部分可选一部分不可选,不是单元格一部分可编辑一部分不可编辑。希望能帮忙给个思路
ddpie
2007-09-28
打赏
举报
回复
用TableModel吧,下面只是个例子代码,要想真的使用TableModel还要复写DefaultTableModel中的一些方法,如getValueAt等。
//如下代码实现表格第3列所有的单元格不能编辑,第3行第4列的单元格不能编辑
package com.ddpie.frame;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class TestJTable {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(300,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout());
JTable table = new JTable();
frame.getContentPane().add(new JScrollPane(table));
table.setModel(new DefaultTableModel(){
private static final long serialVersionUID = -5844471166783040698L;
public int getColumnCount(){
return 5;
}
public int getRowCount(){
return 20;
}
public boolean isCellEditable(int rowIndex,int columnIndex){//关键是这里
if(rowIndex==2&&columnIndex==3)
return false;
if(columnIndex==2)
return false;
return true;
}
});
frame.setVisible(true);
}
}
ddpie
2007-09-28
打赏
举报
回复
To houname(冷血)
我试着写了几段代码好像都不能满足你的要求,不好意思,帮你顶一下吧^o^
cjqq81
2007-09-27
打赏
举报
回复
很简单,复写JTable的Editor和Renderer就可以了
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3
实例045 用数组
设置
JTable
表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例048 复
选
框控件数组 59 实例049 用数组反转字符串 60 3.3 数组排序与查询 61 ...
Swing
Jtable
设置
单元格
不可
编辑
提供的API也不能修改可编辑性,但可以通过重写AbstractTableModel来实现
JTable
单元格
不可
编辑。 核心代码: class MyTableModel extends AbstractTableModel{ @override public boolean ...
使用
JTable
创建一个带有复
选
框的用于删除
选
中
列的表格
JTable
DefaultCellEditor AbstractTableModel
JTable
的应用(二)
目录 如何使用Table (1)创建一个简单的表格 (2)向容器添加表格 (3)改变每每一列的宽度 (4)用户
选
择 ...(10)为
单元格
指定提示工具 (11)为列头指定工具集 (12)排序和过滤 (13)使...
Swing 组件
JTable
详解
增加壹個表格到容器
中
设置
和更改列宽度 用户的
选
择 创建壹個 Table Model 监控数据的更新 发起数据更新事件 相关内容:编辑器和渲染器 使用自定义的渲染器 为
单元格
指定工具提示信息 为表头指定工具提示...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章