社区
Java SE
帖子详情
JTable中如何设置单元格一部分可选一部分不可选
houname
2007-09-27 04:47:29
JTable中如何设置单元格一部分可选一部分不可选
...全文
575
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
Jtable
经典列
设置
+表格颜色.docx
java
Jtable
经典列
设置
+表格颜色.docx
JTable
(动态添加数据)
用 JavaBean 动态向
JTable
中
添加数据,将数据信息保存到 Sql Server 数据库
中
,在到
JTable
中
显示。
swing
jtable
合并
NULL 博文链接:https://inotgaoshou.iteye.com/blog/1705680
Window Builder功能介绍
Selection:
选
择 Marquee:移动属性 Choose component:
选
择组件 Tab Order:修改Tab顺序 ......
Apress - The Definitive Guide to Java Swing, Third Edition.pdf
Welcome to Learn Java 5.0 Swing in a Nutshell for Dummies in 21 Days. Since the beginning of Java time (1995), the component libraries have been actively evolving. What began as a small set of nine AWT components, plus menus and containers, has grown to a more complete and complex set of around 50 Swing components—all just to create graphical user interfaces (GUIs) for your Java client-side programs. That’s where this book comes in. Its purpose is to make your life easier in creating those GUIs
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章