- 浏览: 673513 次
- 性别:
- 来自: 北京
最新评论
-
mushiyu123:
...
iText官方教程 -
sf_dream:
楼主,你那个放到没有安装jdk的电脑上可以运行不?
eclipse导出jar文件再将它转换成exe可执行文件详解 -
zqb666kkk:
哥们 没图了 弄个附件 文档 供我们下载吧
PowerDesigner 使用教程(很具体,很实用) -
dhkswh:
楼主写的代码超级多错...不过总算看懂了,楼主是class.A ...
java swing 弹出对话框与父窗口传值实例
JTable常见用法细则+设置某列可编辑+滚动表格
JTable常见用法细则
JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.
一.创建表格控件的各种方式:
1)<wbr><em>调用无参构造函数</em>.<br></wbr>
JTable<wbr>table<wbr></wbr></wbr>=<wbr></wbr>new<wbr>JTable();</wbr>
2)<wbr><em>以表头和表数据创建表格</em>.<br></wbr>
Object[][]<wbr>cellData<wbr></wbr></wbr>=<wbr></wbr>{{"row1-col1",<wbr></wbr>"row1-col2"},{"row2-col1",<wbr></wbr>"row2-col2"}};
String[]<wbr>columnNames<wbr></wbr></wbr>=<wbr></wbr>{"col1",<wbr></wbr>"col2"};
<wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">JTable<wbr>table<wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>new<wbr>JTable(cellData,<wbr>columnNames);</wbr></wbr>
String[]<wbr>columnNames<wbr></wbr></wbr>=<wbr></wbr>{"col1",<wbr></wbr>"col2"};
<wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">JTable<wbr>table<wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr></wbr>new<wbr>JTable(cellData,<wbr>columnNames);</wbr></wbr>
3)<wbr><em>以表头和表数据创建表格,并且让表单元格不可改</em>.<br></wbr>
String[]<wbr>headers<wbr></wbr></wbr>=<wbr></wbr>{<wbr></wbr>"表头一",<wbr></wbr>"表头二",<wbr></wbr>"表头三"<wbr>}</wbr>;
Object[][]<wbr>cellData<wbr></wbr></wbr>=<wbr></wbr>null;
DefaultTableModel<wbr>model<wbr></wbr></wbr>=<wbr></wbr>new<wbr>DefaultTableModel(cellData,<wbr>headers)<wbr></wbr></wbr></wbr>{
<wbr><wbr></wbr></wbr>public<wbr></wbr>boolean<wbr>isCellEditable(</wbr>int<wbr>row,<wbr></wbr></wbr>int<wbr>column)<wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>return<wbr></wbr>false;
<wbr><wbr>}</wbr></wbr>
};
table<wbr></wbr>=<wbr></wbr>new<wbr>JTable(model);</wbr>
Object[][]<wbr>cellData<wbr></wbr></wbr>=<wbr></wbr>null;
DefaultTableModel<wbr>model<wbr></wbr></wbr>=<wbr></wbr>new<wbr>DefaultTableModel(cellData,<wbr>headers)<wbr></wbr></wbr></wbr>{
<wbr><wbr></wbr></wbr>public<wbr></wbr>boolean<wbr>isCellEditable(</wbr>int<wbr>row,<wbr></wbr></wbr>int<wbr>column)<wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>return<wbr></wbr>false;
<wbr><wbr>}</wbr></wbr>
};
table<wbr></wbr>=<wbr></wbr>new<wbr>JTable(model);</wbr>
二.对表格列的控制
1) 设置列不可随容器组件大小变化自动调整宽度.
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
2) 限制某列的宽度.
TableColumn<wbr>firsetColumn<wbr></wbr></wbr>=<wbr>table.getColumnModel().getColumn(</wbr>0);
firsetColumn.setPreferredWidth(30);
firsetColumn.setMaxWidth(30);
firsetColumn.setMinWidth(30);
firsetColumn.setPreferredWidth(30);
firsetColumn.setMaxWidth(30);
firsetColumn.setMinWidth(30);
3) 设置当前列数.
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></wbr></wbr>int<wbr>count</wbr>=5;
tableModel.setColumnCount(count);
tableModel.setColumnCount(count);
4) 取得表格列数
int<wbr>cols<wbr></wbr></wbr>=<wbr>table.getColumnCount();</wbr>
5) 添加列
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">tableModel.addColumn(</wbr></wbr>"新列名");
6) 删除列
table.removeColumn(table.getColumnModel().getColumn(columnIndex));//<wbr>columnIndex是要删除的列序号</wbr>
三.对表格行的控制
1) 设置行高
table.setRowHeight(20);
2) 设置当前航数
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></wbr></wbr>int<wbr>n</wbr>=5;
tableModel.setRowCount(n);
tableModel.setRowCount(n);
3) 取得表格行数
int<wbr>rows<wbr></wbr></wbr>=<wbr>table.getRowCount();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></wbr>
4) 添加表格行
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" name="Codehighlighter1_99_127_Open_Image"><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" align="top" name="Codehighlighter1_99_127_Closed_Image">tableModel.addRow(</wbr></wbr>new<wbr>Object[]</wbr>{"sitinspring",<wbr></wbr>"35",<wbr></wbr>"Boss"});
5) 删除表格行
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">model.removeRow(rowIndex);</wbr></wbr>//<wbr>rowIndex是要删除的行序号</wbr>
四.存取表格单元格的数据
1) 取单元格数据
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top">String<wbr>cellValue</wbr></wbr></wbr>=(String)<wbr>tableModel.getValueAt(row,<wbr>column);</wbr></wbr>//<wbr>取单元格数据,row是行号,column是列号</wbr>
2) 填充数据到表格.
注:数据是Member类型的链表,Member类如下:
public<wbr></wbr>class<wbr>Member</wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>名称</wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>private<wbr>String<wbr>name;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>年龄</wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>private<wbr>String<wbr>age;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>职务</wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>private<wbr>String<wbr>title;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"> }</wbr></wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>名称</wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>private<wbr>String<wbr>name;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>年龄</wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>private<wbr>String<wbr>age;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>职务</wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>private<wbr>String<wbr>title;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"> }</wbr></wbr>
填充数据的代码:
public<wbr></wbr>void<wbr>fillTable(List</wbr><Member><wbr>members)</wbr>{
<wbr><wbr>DefaultTableModel<wbr>tableModel<wbr></wbr></wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>tableModel.setRowCount(</wbr></wbr></wbr></wbr></wbr></wbr>0);//<wbr>清除原有行<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>填充数据</wbr>
<wbr><wbr></wbr></wbr>for(Member<wbr>member:members)</wbr>{
<wbr><wbr><wbr><wbr>String[]<wbr>arr</wbr></wbr></wbr></wbr></wbr>=new<wbr>String[</wbr>3];
<wbr><wbr><wbr><wbr>arr[</wbr></wbr></wbr></wbr>0]=member.getName();
<wbr><wbr><wbr><wbr>arr[</wbr></wbr></wbr></wbr>1]=member.getAge();
<wbr><wbr><wbr><wbr>arr[</wbr></wbr></wbr></wbr>2]=member.getTitle();
<wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>添加数据到表格</wbr>
<wbr><wbr><wbr><wbr>tableModel.addRow(arr);<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>更新表格</wbr>
<wbr><wbr>table.invalidate();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"> }</wbr></wbr>
<wbr><wbr>DefaultTableModel<wbr>tableModel<wbr></wbr></wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>tableModel.setRowCount(</wbr></wbr></wbr></wbr></wbr></wbr>0);//<wbr>清除原有行<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>填充数据</wbr>
<wbr><wbr></wbr></wbr>for(Member<wbr>member:members)</wbr>{
<wbr><wbr><wbr><wbr>String[]<wbr>arr</wbr></wbr></wbr></wbr></wbr>=new<wbr>String[</wbr>3];
<wbr><wbr><wbr><wbr>arr[</wbr></wbr></wbr></wbr>0]=member.getName();
<wbr><wbr><wbr><wbr>arr[</wbr></wbr></wbr></wbr>1]=member.getAge();
<wbr><wbr><wbr><wbr>arr[</wbr></wbr></wbr></wbr>2]=member.getTitle();
<wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>//<wbr>添加数据到表格</wbr>
<wbr><wbr><wbr><wbr>tableModel.addRow(arr);<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>更新表格</wbr>
<wbr><wbr>table.invalidate();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"> }</wbr></wbr>
2) 取得表格中的数据
public<wbr>List</wbr><Member><wbr>getShowMembers()</wbr>{
<wbr><wbr>List</wbr></wbr><Member><wbr>members</wbr>=new<wbr>ArrayList</wbr><Member>();
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>DefaultTableModel<wbr>tableModel<wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>int<wbr>rowCount</wbr>=tableModel.getRowCount();
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" name="Codehighlighter1_239_523_Open_Image"><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" align="top" name="Codehighlighter1_239_523_Closed_Image"><wbr><wbr></wbr></wbr></wbr></wbr>for(int<wbr>i</wbr>=0;i<rowCount;i++){
<wbr><wbr><wbr><wbr>Member<wbr>member</wbr></wbr></wbr></wbr></wbr>=new<wbr>Member();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr>member.setName((String)tableModel.getValueAt(i,<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>0));//<wbr>取得第i行第一列的数据</wbr>
<wbr><wbr><wbr><wbr>member.setAge((String)tableModel.getValueAt(i,<wbr></wbr></wbr></wbr></wbr></wbr>1));//<wbr>取得第i行第二列的数据</wbr>
<wbr><wbr><wbr><wbr>member.setTitle((String)tableModel.getValueAt(i,<wbr></wbr></wbr></wbr></wbr></wbr>2));//<wbr>取得第i行第三列的数据</wbr>
<wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr>members.add(member);<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr>return<wbr>members;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"> }</wbr>
<wbr><wbr>List</wbr></wbr><Member><wbr>members</wbr>=new<wbr>ArrayList</wbr><Member>();
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>DefaultTableModel<wbr>tableModel<wbr></wbr></wbr></wbr></wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr>.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>int<wbr>rowCount</wbr>=tableModel.getRowCount();
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" name="Codehighlighter1_239_523_Open_Image"><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" align="top" name="Codehighlighter1_239_523_Closed_Image"><wbr><wbr></wbr></wbr></wbr></wbr>for(int<wbr>i</wbr>=0;i<rowCount;i++){
<wbr><wbr><wbr><wbr>Member<wbr>member</wbr></wbr></wbr></wbr></wbr>=new<wbr>Member();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr>member.setName((String)tableModel.getValueAt(i,<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>0));//<wbr>取得第i行第一列的数据</wbr>
<wbr><wbr><wbr><wbr>member.setAge((String)tableModel.getValueAt(i,<wbr></wbr></wbr></wbr></wbr></wbr>1));//<wbr>取得第i行第二列的数据</wbr>
<wbr><wbr><wbr><wbr>member.setTitle((String)tableModel.getValueAt(i,<wbr></wbr></wbr></wbr></wbr></wbr>2));//<wbr>取得第i行第三列的数据</wbr>
<wbr><wbr><wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><wbr><wbr>members.add(member);<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr></wbr></wbr></wbr></wbr>return<wbr>members;<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"> }</wbr>
五.取得用户所选的行
1) 取得用户所选的单行
int<wbr>selectRows</wbr>=table.getSelectedRows().length;//<wbr>取得用户所选行的行数</wbr>
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" name="Codehighlighter1_147_231_Open_Image"><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" align="top" name="Codehighlighter1_147_231_Closed_Image"></wbr></wbr>if(selectRows==1){
<wbr><wbr></wbr></wbr>int<wbr>selectedRowIndex<wbr></wbr></wbr>=<wbr>table.getSelectedRow();<wbr></wbr></wbr>//<wbr>取得用户所选单行<wbr><wbr></wbr></wbr></wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/dot.gif">.</wbr></wbr></wbr></wbr>//<wbr>进行相关处理</wbr>
}
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" name="Codehighlighter1_147_231_Open_Image"><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" align="top" name="Codehighlighter1_147_231_Closed_Image"></wbr></wbr>if(selectRows==1){
<wbr><wbr></wbr></wbr>int<wbr>selectedRowIndex<wbr></wbr></wbr>=<wbr>table.getSelectedRow();<wbr></wbr></wbr>//<wbr>取得用户所选单行<wbr><wbr></wbr></wbr></wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"><wbr><wbr><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/dot.gif">.</wbr></wbr></wbr></wbr>//<wbr>进行相关处理</wbr>
}
2) 取得用户所选的多行
int<wbr>selectRows</wbr>=table.getSelectedRows().length;//<wbr>取得用户所选行的行数</wbr>
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></wbr></wbr>if(selectRows>1)
<wbr><wbr></wbr></wbr>int[]<wbr>selRowIndexs</wbr>=table.getSelectedRows();//<wbr>用户所选行的序列</wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" name="Codehighlighter1_247_359_Open_Image"><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" align="top" name="Codehighlighter1_247_359_Closed_Image"><wbr><wbr></wbr></wbr></wbr></wbr>for(int<wbr>i</wbr>=0;i<selRowIndexs.length;i++){
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>用tableModel.getValueAt(row,<wbr>column)取单元格数据</wbr></wbr>
<wbr><wbr><wbr><wbr>String<wbr>cellValue</wbr></wbr></wbr></wbr></wbr>=(String)<wbr>tableModel.getValueAt(i,<wbr></wbr></wbr>1);
<wbr><wbr>}</wbr></wbr>
}
DefaultTableModel<wbr>tableModel<wbr></wbr></wbr>=<wbr>(DefaultTableModel)<wbr>table.getModel();<br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"></wbr></wbr>if(selectRows>1)
<wbr><wbr></wbr></wbr>int[]<wbr>selRowIndexs</wbr>=table.getSelectedRows();//<wbr>用户所选行的序列</wbr>
<wbr><wbr><br><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" name="Codehighlighter1_247_359_Open_Image"><img title="JTable常见用法细则+设置某列可编辑+滚动表格" alt="" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" align="top" name="Codehighlighter1_247_359_Closed_Image"><wbr><wbr></wbr></wbr></wbr></wbr>for(int<wbr>i</wbr>=0;i<selRowIndexs.length;i++){
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>用tableModel.getValueAt(row,<wbr>column)取单元格数据</wbr></wbr>
<wbr><wbr><wbr><wbr>String<wbr>cellValue</wbr></wbr></wbr></wbr></wbr>=(String)<wbr>tableModel.getValueAt(i,<wbr></wbr></wbr>1);
<wbr><wbr>}</wbr></wbr>
}
六.添加表格的事件处理
view.getTable().addMouseListener(new<wbr>MouseListener()<wbr></wbr></wbr>{
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mousePressed(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标按下时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseReleased(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标松开时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseEntered(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标进入表格时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseExited(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标退出表格时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseClicked(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标点击时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
});
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mousePressed(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标按下时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseReleased(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标松开时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseEntered(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标进入表格时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseExited(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标退出表格时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
<wbr><wbr></wbr></wbr>public<wbr></wbr>void<wbr>mouseClicked(MouseEvent<wbr>e)<wbr></wbr></wbr></wbr>{
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>//<wbr>鼠标点击时的处理</wbr>
<wbr><wbr>}</wbr></wbr>
});
例子:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class PTest{
<wbr><br><wbr>public PTest()<br><wbr>{<br><wbr> String head[] = {"学号", "姓名", "成绩(请双击以下空格输入)"};<wbr><br><wbr><br><wbr> Icon bug = new ImageIcon(getClass().getResource("789.jpg"));<br><wbr> JLabel a = new JLabel (bug);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr> JTable a1 = new JTable (20,3);<br><wbr> a1.setRowHeight (30);//设置高度<br><wbr> a1.setDragEnabled(true);<br><wbr><br><span style="color:#ff0000"><wbr> //设置第一、二列不可可编辑</wbr></span><br><wbr> DefaultTableModel tableModel = new DefaultTableModel(20,3){<br><wbr><wbr> boolean[] editables = {false, false, true};<br><wbr><wbr> public boolean isCellEditable(int row, int col)<br><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr> return editables[col];<br><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
//使table不可编辑的代码(放在model中有效)全部不可编辑
//public boolean isCellEditable(int row, int column)
// {
// return false;
// }
<wbr><wbr><wbr><wbr><wbr> };<wbr><br><wbr><wbr><wbr><wbr><wbr> a1.setModel(tableModel);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr> for (int i=0; i<3; i++)<br><wbr><wbr>a1.getModel().setValueAt(head[i], 0, i);</wbr></wbr></wbr>
<wbr><wbr><br><wbr><wbr> JPanel panelwrap = new JPanel (new FlowLayout ());<br><wbr><wbr> JPanel panel = new JPanel (new GridLayout (2,1));<br><wbr><wbr> panel.setPreferredSize (new Dimension (500,400));<br><wbr><wbr> // panel.setBackground (Color.black);<br><wbr><wbr> panel.add (a,BorderLayout.CENTER);<br><wbr><wbr> JScrollPane a2 = new JScrollPane (a1);<br><wbr><wbr> panel.add (a2,BorderLayout.CENTER);<br><wbr><wbr> panelwrap.add(panel);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr> JFrame frame = new JFrame ("JTableDemo");<br><wbr><wbr> frame.setDefaultCloseOperation<wbr> (JFrame.EXIT_ON_CLOSE);<br><wbr><wbr> frame.setContentPane (panelwrap);<br><wbr><wbr> frame.setSize(500,400);<br><wbr><wbr> frame.pack();<br><wbr><wbr> frame.show();<br><wbr>}<br><wbr>public static void main(String[] args) {<br><wbr><wbr>PTest k = new PTest();<br><wbr>}<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
//////////////////////////////////////////自己的//////////////////////////////////////
private JTable getJTable0() {
if (jTable0 == null) {
jTable0 = new JTable();
jTable0.setModel(new DefaultTableModel(new Object[][] { {false, "null", "null", "com1", "null", "null", "null", "null", "null", "null", },
{false, "null", "null", "com2", "null", "null", "null", "null", "null", "null", },
{ false, "null", "null", "com3", "null", "null", "null", "null", "null", "null",},
{ false,"null", "null", "com4", "null", "null", "null", "null", "null", "null", },
{ false,"null", "null", "com5", "null", "null", "null", "null", "null", "null", },
{ false, "null", "null", "com6", "null", "null", "null", "null", "null", "null",},
{ false, "null", "null", "com7", "null", "null", "null", "null", "null", "null", },
{false, "null", "null", "com8", "null", "null", "null", "null", "null", "null", },
{ false,"null", "null", "com9", "null", "null", "null", "null", "null", "null", },
{ false,"null", "null", "com10", "null", "null", "null", "null", "null", "null", },
{false, "null", "null", "com11", "null", "null", "null", "null", "null", "null", },
{ false, "null", "null", "com12", "null", "null", "null", "null", "null", "null", }, }, new String[] {"操作", "ID", "status", "序号", "产品序列号", "半成品序列号",
"所属工作任务号", "产品型号(pn码)", "生产进度状态", "端口状态", }) {
private static final long serialVersionUID = 1L;
Class<?>[] types = new Class<?>[] { Boolean.class, Object.class, Object.class, Object.class, Object.class, Object.class, Object.class, Object.class, Object.class,
Object.class, };
public Class<?> getColumnClass(int columnIndex) {
return types[columnIndex];
}
////使table不可编辑的代码(放在model中有效)全部不可编辑
//public boolean isCellEditable(int row, int column)
// {
// return false;
// }
//指定列不可编辑
boolean[] editables = {true, false, false,false,false,false,false,false,false,false};
public boolean isCellEditable(int row, int col)
{
return editables[col];
}
//指定行不可编辑
boolean[] editables = {true, false, false,false,false,false,false,false};
public boolean isCellEditable(int row, int col)
{
return editables[row];
}
});
}
return jTable0;
}
相关推荐
在java中JTable常见用法细则,doc版的。很全面的。
java Jtable 经典列设置+表格颜色.docx
javaJtable经典列设置+表格颜色.doc
javaJtable经典列设置+表格颜色参考.pdf
可读取文本内容到表格某列,提供下拉选项,可保存,功能齐全的java图形化界面之表格jtable源码
原创 Java JTable 操作单元格 行 列
重写JTable ctrl+c的内容,实现自己定制的内容输出。
利用Jtable类直接创建表格
这是有关java中的JTable组件中的表格模型程序代码,还实现的有排序过滤器功能,仅供参考!
本文档主要讲述的是java表格控件JTable常用操作详解;JTable是Swing编程中很常用的控件,文中总结了一些常用方法以备查阅。
JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 2.TableModel实践 3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将...
jtable使用方法介绍,很专业,内容详细,蛮有用。
这些是JAVA中table的一些用法,希望对你java中Jtable 初学者有一些帮助
主要解决: 把jtable设置为只能选择一行,但是按下Ctrl+A以后,table会自动把选择迁移到最后一行. 如何不让焦点自动迁移?给了个人的一个简单的实现。
Jtable表格排序,这两天公司让做一个Jtable表格的排序,首先按A列排序,在A列相等时按B列排序,B列相等时按C列排序,ABC三列可以任意指定,最多分三列,这样的一个需求。
封装JTable同时锁定多行多列效果,通过多层布局实现,不需要多个数据集,使用简单,不用对现有代码做改动。
复杂JTable-跨列表头, JTable表头合并,已经测试Ok,希望对你有用
此例子给出了JAVA中JTable使用的例子,列表可显示滚动条。
通过JTable类创建的表格的列标题是永远可见的,即使是向下滚动了垂直滚动条,增强了表格的可读性。此代码通过两个并列显示的表格实现了永久可见的行标题