JAVA SWING JTable使用

来源:互联网 发布:郑州大学网络服务中心 编辑:程序博客网 时间:2024/04/30 13:59

本人学习java一段时间了,但是以前是学C\C++的,因为工作需要,需要学习java swing开发,但我学的并不系统,只是为了能正常使用而已,所以有什么说错或着不对的请见谅


1.创建一个JTable

String[]  bankNoteColumnNames = {"col1", "col2"}; DefaultTableModel  tableModel = new DefaultTableModel(null, bankNoteColumnNames);bankNoteTable = new JTable(tableModel) {    /** *  */private static final long serialVersionUID = -622843314036218123L;public boolean isCellEditable(int row, int column) {        return false;       }};

上面是创建一个两列,列名为col1,col2,行数据为null的一个单元格不可编辑的table


2.插入行数据

Object []obj = new Object[2];obj[1] = "fisrt"obj[2] = 2; tableModel.addRow(obj);


单元格数据可以是字符串,整形,还可以是图片,只要插入的数组类型为Object对象类型(插入图片的话需要重写列对象,详情请看下面),再调用JTable的数据管理模型tableModel,就可以直接插入


3.删除行数据

全部清空列表可以这样

tableModel.setRowCount(0);
单行删除可以这样

tableModel.removeRow(row);


4.让某一行选中或者多行选择

bankNoteTable.getSelectionModel().addSelectionInterval(index1,index2);

index为行序号,从0开始,单行就是index1=index2,多行就是index2 > index1, 这个语句可以多次执行而不会影响之前的选中结果,所以可以达到选中多行不连续的效果,比如

bankNoteTable.getSelectionModel().addSelectionInterval(0,0);bankNoteTable.getSelectionModel().addSelectionInterval(2,2);bankNoteTable.getSelectionModel().addSelectionInterval(4,4);

5.某一列插入图像
先重写一个类(单元格渲染器)

class TableImageCell extends DefaultTableCellRenderer{/** *  */private static final long serialVersionUID = -103231327032740445L;public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){setIcon(null); setBorder(null); if(value instanceof ImageIcon){setIcon((Icon) value);if(isSelected) setBorder(new LineBorder(Color.red));}elseif(value instanceof String) setText((String) value);else setText("");return this;}}bankNoteTable.getColumnModel().getColumn(1).setCellRenderer(new TableImageCell()); //1为列序号Object []obj = new Object[2];obj[1] = "fisrt"obj[2] = new ImageIcon(path);  //path为图像路径tableModel.addRow(obj);
<pre code_snippet_id="306530" snippet_file_name="blog_20140422_7_109886" name="code" class="html"><pre code_snippet_id="306530" snippet_file_name="blog_20140422_7_109886" name="code" class="java"><pre code_snippet_id="306530" snippet_file_name="blog_20140422_7_109886">
                                             
0 0
原创粉丝点击