ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:47KB ,
资源ID:9314216      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9314216.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(关于JTable用法的整理.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

关于JTable用法的整理.doc

1、关于JTable用法的整理 Swing颇受欢迎的JTable类为显示大块数据提供了一种简单的机制。用户能够更改JTable的布局、拖放它的栏,或者通过拖动标题的分隔线来改变其大小。 这些列被保存在一个String数组里: String[] columnNames = {"Product","Number of Boxes","Price"}; 数据被初始化并保存在一个二维的对象数组里: Object[][] data = { {"Apples", new Integer(5),"5.00"}, {"Oranges", new Integer(3),"6.00"}, {"Pea

2、rs", new Integer(2),"4.00"}, {"Grapes", new Integer(3),"2.00"}, }; JTable是使用data和columnNames构成的: JTable table = new JTable(data, columnNames); 查看JTable     JTable的高度和宽度按照下面的方法来设定: table.setPreferredScrollableViewportSize(new Dimension(300, 80));      如果JTable的一个列或者JTable窗口自身的大小被重新确定,那么其他

3、列会被相应的缩小或者放大,以适应新的窗口。使用setAutoResizeMode()方法就能够控制这种行为: table.setAutoResizeMode(int mode); mode整数字段可能的值有: AUTO_RESIZE_OFF AUTO_RESIZE_NEXT_COLUMN AUTO_RESIZE_SUBSEQUENT_COLUMNS AUTO_RESIZE_LAST_COLUMN AUTO_RESIZE_ALL_COLUMNS 表格的缺省值 单元格内方格坐标线的缺省颜色是Color.gray。要更改这些方格坐标线的颜色,就要用到: table.setGr

4、idColor(Color.black); 你可以用下面的方法来改变行的高度: table.setRowHeight(intpixelHeight); 各个单元格的高度将等于行的高度减去行间的距离。      在缺省情况下,内容的前景颜色和背景颜色的选择都是由Swing的所见即所得的实现来确定的。你可以使用下面的方法来更改选择的颜色: table.setSelectionBackground(Color.black); table.setSelectionForeground(Color.white); 你也可以隐藏单元格的方格坐标线,就像下面这样: table.setShowH

5、orizontalLines(false); table.setShowVerticalLines(false); 列的宽度       JTable组件有几个控制表格特性的类和接口。TableColumn会不断追踪列的宽度,并负责列大小的调整,包括最大和最小宽度。       TableColumnModel管理着TableColumns的集合以及列的选择。要设置某个列的宽度,就要为表格列的模型设置一个参照。然后,取得想要的TableColumn并调用其setPreferredWidth()方法: TableColumncolumn = table.getColumnModel()

6、getColumn(0); column.setPreferredWidth(100);      当用户拖放列的时候,列的索引并不会发生改变。getColumn(0)方法会一直返回正确的列,无论它出现在屏幕的哪个地方。 标题     JtableHeader会处理JTable标题的显示。你可以细分JtableHeader以获得自定义的布局。例如,如果你的应用程序需要一个跨越多个列的标题,那么只用简单地细分JtableHeader并将它集成到你的JTable里就行了。      你可以通过为当前JTable的JtableHeader设置一个参照或者调用其setReorderingA

7、llowed()方法,来指定标题的重新排序是否被允许: table.getTableHeader().setReorderingAllowed(false);      类似地,你可以确信列不会因为在列标题之间拖动而改变大小。要达到这个目的,你就要使用setResizingAllowed()方法: table.getTableHeader().setResizingAllowed(false); 选择模式 在缺省状况下,当用户在JTable里选择一个单元格的时候,整个行都被选中了。有多种方法能够让用户自定义选择的方式。利用ListSelectionModel接口,你可以允许用户选择单

8、个或者多个行: table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ListSelectionModel有下面这些字段: · SINGLE_SELECTION允许一次选择一行。 · SINGLE_INTERVAL_SELECTION允许选择相邻的一系列行。 · MULTIPLE_INTERVAL_SELECTION也允许选择相邻的列,但是带有扩展功能。它允许用户使用[Ctrl]键进行多个互不相邻的选择(即选择不相邻的行)。 setCellSelectionEnabled()方法让用户能够同时选择单个单元格或

9、者整个行: table.setCellSelectionEnabled(true); 如果被设置为是,setCellSelectionEnabled()方法还会允许在选择行和单个单元格的同时选择列。 编辑单元格 实现TableCellEditor,TableCellRenderer这两个接口就可以灵活的控制表格单元格的编辑和显示.    当然为了方便,swing已经定义了这两个接口的默认实现,如DefaultCellEditor,DefaultTableCellRenderer. 首先,单元格可不可以编辑由表格的模型TableModel控制。因为通常可不可以编辑取决于数据内容,所

10、以将它定义在模型中是合理的!    TableModel 接口有如下一个方法:    boolean isCellEditable(int rowIndex, int columnIndex) ;    JTabel会通过他来确定可不可以编辑。 如果允许由程序员来决定哪些单元格能够被编辑。有两种方法: 1.       写一个JTable的子类并且重写它的isCellEditable方法 Class MyTable extends JTable{ public boolean isCellEditable(int row,int col){ .... }

11、 } private MyTable table1,table2,table3.... 2.       用内部类直接重写它的isCellEditable方法 private JTable table1; table1=new JTable(){ public boolean isCellEditable(int row,int col){     .....     } }; 如果里面直接return true或者false,就使得整个表格所有行,列可编辑或者不可以 如果想要某个行或者列可以编辑,只需要 public boolean isCellE

12、ditable(int row,int col){     if(col==??) return true\false;     if(row==??) return true\false;     return true\false; } "\" 代表“或者”。实现的人自己根据需求定 如果想要别人用你这个,让他们来自定义,只需要用一个全局boolean变量,在方法里return它就可以了 表格单元格点击一次就可以编辑的实现 先要知道如何将我们的编辑器或表现器注册到JTable上?   这个看是很简单的问题,其实也并非想象当中那么简单。   看一下JTabl

13、e提供的明显的注册接口    void setCellEditor(TableCellEditor anEditor) ;    void setDefaultEditor(Class columnClass, TableCellEditor editor)    void setDefaultRenderer(Class columnClass, TableCellRenderer renderer) 第一个接口很显然整个表格单元格的编辑器将由这个注册的编辑器接管。   后面两个是基于数据类型进行配置的,也就是说这种数据类型的单元格编辑器将由注册的编辑器接管。

14、   那么如何决定数据类型呢?看表格模型TableModel里有一个方法   Class getColumnClass(int columnIndex); 很明显,与是否可编辑一样,数据类型由表格模型决定。 除此之外还有另外的注册方法,那就是表格本身也是有其他元素组成,在JTable中下一级元素是列,TableColumn。它有这两个方法    void setCellEditor(TableCellEditor cellEditor)    void setCellRenderer(TableCellRenderer cellRenderer)   可以将编辑器和

15、表现器直接注册在列上,那么这一列的编辑或表现将由你注册的东西接管,下面的两个例子就是这样。     好,写一个类继承JTable,并实现MouseListener接口,重写mouseClicked方法,即可实现,表格单元格点击一次就可以编辑: public void mouseClicked(MouseEvent e)     {        int row = this.rowAtPoint(e.getPoint());        //int row = this.getSelectedRow();//两种方法都可以        int column = this.col

16、umnAtPoint(e.getPoint());        //int column = this.getSelectedColumn();        DefaultCellEditor ce = new DefaultCellEditor(new JTextField());        ce.setClickCountToStart(1);        this.getColumnModel().getColumn(column).setCellEditor(ce);     } 另外,我们利用此原理还可以做出表格的密码项显示:        // 设置密码格编

17、辑器-------------------//        JPasswordField passwordEdit = new JPasswordField();        passwordEdit.setBorder(null);        table.getColumn("密码")               .setCellEditor(new DefaultCellEditor(passwordEdit));        // 设置密码格渲染器-------------------//        table.getColumn("密码").setCellRe

18、nderer(new DefaultTableCellRenderer()        {            // 重写 setValue 方法            public void setValue(Object value)            {               String password = "";               for (int i = 0; i < 5; i++)// 10 原来是wordlong                   password += "*";               super.setValu

19、e(password);            }       }); 小技巧: //让单元格居中对齐的方法        JTable jtb = new JTable(obj, title);        DefaultTableCellRenderer r = new DefaultTableCellRenderer();        r.setHorizontalAlignment(JLabel.CENTER);        table.setDefaultRenderer(Object.class, r); 简单的表格验证 你需要确保用户只输入整数值,假

20、如说,向第二列(“盒子的数量”这一列)输入值来强制替代setValueAt()方法,并将验证逻辑包括进这个新方法里。首先,你要检查列是否是整数,以及这个列是否只应该包含整数值: if (data[0][col] instanceof Integer && !(value instanceof Integer)) {… } else { data[row][col] = value;} 然后,检查被插入的值是否是个整数。如果它不是的,那么这个字段就不应该被更新,而且应该要显示一条错误信息: try {      data[row][col] = new Integer(

21、value.toString()); } catch (NumberFormatException e) {      JOptionPane.showMessageDialog(SimpleTable.this,      "Please enter only integer values."); } 背景颜色 Listing C包含了用于ColorTable.java的代码,它说明了如何向JTable加入颜色。你可以通过强制替代其prepareRenderer()方法来向JTable加入背景颜色: JTable table = new JTable(data, columnN

22、ames){ public Component prepareRenderer(TableCellRenderer r, int row, intcol){} }; 然后,插入决定哪些列应该有颜色以及应该是什么颜色的逻辑: if (col == 2 && !isCellSelected(row, col)){      Color bg = new Color(200, 100, 30);      c.setBackground(bg);      c.setForeground(Color.white); } 要注意,当你更改单元格背景颜色的时候,你还应该更改单元格里所显示的文本的颜色,让其变得更加易读。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服