`
lushuaiyin
  • 浏览: 711549 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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>


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>


二.对表格列的控制
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);


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);


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);


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>


填充数据的代码:

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>


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>


五.取得用户所选的行
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>
}


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>

}


六.添加表格的事件处理

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>

}
);


例子:

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&lt;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;
}

分享到:
评论

相关推荐

    JTable常见用法细则.doc

    通过上述介绍,我们可以看到JTable提供了丰富的功能来满足不同场景下的需求,无论是创建表格、控制列和行,还是获取和填充数据,都有相应的API可供使用。这对于开发复杂的桌面应用来说是非常有用的。

    java Jtable 经典列设置+表格颜色.docx

    本文档将详细介绍如何在Java Swing框架下使用`JTable`组件进行经典列设置以及表格颜色的自定义设置,并通过一个实际的例子展示如何实现这些功能。 #### 二、基础知识 在开始之前,我们需要了解几个基本概念: - *...

    javaJtable经典列设置+表格颜色.doc

    - `JTable` 创建时,使用了 `DefaultTableModel` 实例化,同时设置了表格不可编辑。 3. **设置表格标题和内容**: - 列标题是通过 `Vector&lt;String&gt;` 实例化并添加到 `DefaultTableModel` 中。 - 数据行可以通过...

    javaJtable经典列设置+表格颜色参考.pdf

    - `isCellEditable()`方法被重写,使得表格中的所有单元格都不可编辑,只供查看。 - `JTable`实例化时,传入`DefaultTableModel`,并进一步重写`isCellEditable()`方法,确保数据不可修改。 - 使用`JScrollPane`...

    JAVA表格控件JTable常用操作详解.doc

    3. **设置列数**:使用`DefaultTableModel`的`setColumnCount`方法设置表格的列数。 4. **获取列数**:调用`table.getColumnCount()`获取表格的列数。 5. **添加列**:通过`DefaultTableModel`的`addColumn`方法...

    JTable 操作单元格 行 列

    1. **添加行**:使用`DefaultTableModel`的`addRow()`方法向表格添加新的行,传入一个对象数组,其长度与表格列数相同。 2. **删除行**:调用`removeRow(int index)`方法可删除指定索引的行。 3. **选择行**:用户...

    JTable表头排序的两种方法

    `DefaultTableColumnModel`是`JTable`默认使用的列模型,它支持列的排序功能。以下是如何设置`JTable`表头排序的步骤: 1. **获取表头视图(HeaderView)**:`JTable`的表头视图是`JTableHeader`,它负责处理表头的...

    java 中 Jtable的用法

    ### Java中的JTable用法详解 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能,还支持丰富的定制选项,使得开发者能够根据具体需求创建出高度个性化的...

    java表格jtable源码

    在"tableLearning"这个压缩包中,可能包含的资源有示例代码、教程文档等,通过学习这些内容,你可以深入理解JTable的使用方法,包括如何读取文本数据、设置下拉选项、保存数据以及实现其他高级功能。对JTable的熟练...

    JAVA JTable使用实例

    2. **设置列名**:向`DefaultTableModel`添加列标题,这将作为表格的列头显示。 ```java model.addColumn("列1"); model.addColumn("列2"); // 添加更多列... ``` 3. **添加数据**:接着,你可以通过调用`add...

    JTable的表格模型

    ### JTable的表格模型 在Java Swing中,`JTable`是用于显示表格数据的组件。为了使`JTable`能够正确地展示数据并具备一定的交互能力,它依赖于一个称为“表格模型”(Table Model)的对象。表格模型定义了表格的...

    Java Swing高级空件JTable的用法

    JTable组件可以通过设置表格的宽度和高度、显示表头、添加列、设置列的下拉框等方式进行美化。这些设置可以通过JTable的API来实现。 5. JTable事件响应 JTable组件提供了多种事件响应机制,例如选中单元格、双击...

    JAVA中JTable的使用方法

    下面我们将深入探讨`JTable`的使用方法。 1. **`JTable`的基本概念** `JTable`是`javax.swing.JTable`类的实例,它继承自`JComponent`并实现了`TableModelListener`接口。`JTable`的核心在于`TableModel`,它定义...

    JTable列隐藏

    重写JTable ctrl+c的内容,实现自己定制的内容输出。

    JTable隐藏某列后如何再恢复显示?

    当你需要对显示的数据进行控制,比如隐藏某一列,然后在特定条件下恢复显示时,这涉及到`JTable`的列管理功能。本篇文章将深入探讨如何实现这个功能。 首先,`JTable`的列是通过`TableColumnModel`对象来管理的。`...

    jTABLE直接创建表格

    利用Jtable类直接创建表格

    java表格控件JTable常用操作详解.pdf

    Java 表格控件 JTable 是 Java 语言中一个常用的表格控件,用于展示和编辑表格数据。在 Java Swing 库中,JTable 是一个非常重要的组件,广泛应用于各种桌面应用程序中。下面将对 JTable 的常用操作进行详解。 一、...

    用Eclispse+Swing(JTable)+Mysql+Xml实现的羽毛球活动费用管理系统

    本文将详细讲解如何使用Eclipse集成开发环境,配合Swing组件(JTable)、MySQL数据库以及XML技术,构建一个羽毛球活动费用管理系统。这个系统是专为非盈利羽毛球活动的管理员设计的,旨在帮助他们高效地管理和追踪...

    复杂JTable-跨列表头

    这个组件在用户界面设计中广泛使用,因为它提供了丰富的交互性,包括排序、选择和编辑表格数据。"复杂JTable-跨列表头"是一个特殊实现,它扩展了JTable的功能,允许在表头中进行列的合并,这在显示层次结构或分组...

Global site tag (gtag.js) - Google Analytics