- 浏览: 3508820 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JPanel; import javax.swing.JTable; import java.awt.Color; import java.awt.GridLayout; import javax.swing.table.TableColumn; public class JTableDemo { public static void main (String[] args) { /* 构造函数有很多下面先介绍几个: JTable() JTable(int numRows, int numColumns) JTable(Object[][] rowData, Object[] columnNames) */ JTable example1 = new JTable ();//看不到但存在 JTable example2 = new JTable (8, 6); final Object[] columnNames = {"姓名", "性别", "家庭地址",//列名最好用final修饰 "电话号码", "生日", "工作", "收入", "婚姻状况","恋爱状况"}; Object[][] rowData = { {"ddd", "男", "江苏南京", "1378313210", "03/24/1985", "学生", "寄生中", "未婚", "没"}, {"eee", "女", "江苏南京", "13645181705", "xx/xx/1985", "家教", "未知", "未婚", "好象没"}, {"fff", "男", "江苏南京", "13585331486", "12/08/1985", "汽车推销员", "不确定", "未婚", "有"}, {"ggg", "女", "江苏南京", "81513779", "xx/xx/1986", "宾馆服务员", "确定但未知", "未婚", "有"}, {"hhh", "男", "江苏南京", "13651545936", "xx/xx/1985", "学生", "流放中", "未婚", "无数次分手后没有"} }; JTable friends = new JTable (rowData, columnNames); friends.setPreferredScrollableViewportSize(new Dimension(600, 100));//设置表格的大小 friends.setRowHeight (30);//设置每行的高度为20 friends.setRowHeight (0, 20);//设置第1行的高度为15 friends.setRowMargin (5);//设置相邻两行单元格的距离 friends.setRowSelectionAllowed (true);//设置可否被选择.默认为false friends.setSelectionBackground (Color.white);//设置所选择行的背景色 friends.setSelectionForeground (Color.red);//设置所选择行的前景色 friends.setGridColor (Color.black);//设置网格线的颜色 friends.selectAll ();//选择所有行 friends.setRowSelectionInterval (0,2);//设置初始的选择行,这里是1到3行都处于选择状态 friends.clearSelection ();//取消选择 friends.setDragEnabled (false);//不懂这个 friends.setShowGrid (false);//是否显示网格线 friends.setShowHorizontalLines (false);//是否显示水平的网格线 friends.setShowVerticalLines (true);//是否显示垂直的网格线 friends.setValueAt ("tt", 0, 0);//设置某个单元格的值,这个值是一个对象 friends.doLayout (); friends.setBackground (Color.lightGray); JScrollPane pane1 = new JScrollPane (example1);//JTable最好加在JScrollPane上 JScrollPane pane2 = new JScrollPane (example2); JScrollPane pane3 = new JScrollPane (friends); JPanel panel = new JPanel (new GridLayout (0, 1)); panel.setPreferredSize (new Dimension (600,400)); panel.setBackground (Color.black); panel.add (pane1); panel.add (pane2); panel.add (pane3); JFrame frame = new JFrame ("JTableDemo"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setContentPane (panel); frame.pack(); frame.show(); };
//----------------------------------------------
JTable是使用data和columnNames构成的:
JTable table = new JTable(data, columnNames);
这些列被保存在一个String数组里:
String[] columnNames = {"Product","Number of Boxes","Price"};
数据被初始化并保存在一个二维的对象数组里:
Object[][] data =
{
{"Apples", new Integer(5),"5.00"},
{"Oranges", new Integer(3),"6.00"},
{"Pears", new Integer(2),"4.00"},
{"Grapes", new Integer(3),"2.00"},
};
JTable的高度和宽度按照下面的方法来设定:
table.setPreferredScrollableViewportSize(new Dimension(300, 80));
如果JTable的一个列或者JTable窗口自身的大小被重新确定,那么其他列会
被相应的缩小或者放大,以适应新的窗口。使用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.setGridColor(Color.black);
你可以用下面的方法来改变行的高度:
table.setRowHeight(intpixelHeight);
各个单元格的高度将等于行的高度减去行间的距离。
在缺省情况下,内容的前景颜色和背景颜色的选择都是由Swing的所见即所
得的实现来确定的。你可以使用下面的方法来更改选择的颜色:
table.setSelectionBackground(Color.black);
table.setSelectionForeground(Color.white);
你也可以隐藏单元格的方格坐标线,就像下面这样:
table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);
列的宽度
JTable组件有几个控制表格特性的类和接口。TableColumn会不断追踪列的
宽度,并负责列大小的调整,包括最大和最小宽度。
TableColumnModel管理着TableColumns的集合以及列的选择。要设置某个列
的宽度,就要为表格列的模型设置一个参照。然后,取得想要的
TableColumn并调用其setPreferredWidth()方法:
TableColumncolumn = table.getColumnModel().getColumn(0);
column.setPreferredWidth(100);
当用户拖放列的时候,列的索引并不会发生改变。getColumn(0)方法会一直
返回正确的列,无论它出现在屏幕的哪个地方。
标题
JtableHeader会处理JTable标题的显示。你可以细分JtableHeader以获得自
定义的布局。例如,如果你的应用程序需要一个跨越多个列的标题,那么只
用简单地细分JtableHeader并将它集成到你的JTable里就行了。
你可以通过为当前JTable的JtableHeader设置一个参照或者调用其
setReorderingAllowed()方法,来指定标题的重新排序是否被允许:
table.getTableHeader().setReorderingAllowed(false);
类似地,你可以确信列不会因为在列标题之间拖动而改变大小。要达到这个
目的,你就要使用setResizingAllowed()方法:
table.getTableHeader().setResizingAllowed(false);
选择模式
在缺省状况下,当用户在JTable里选择一个单元格的时候,整个行都被选中
了。有多种方法能够让用户自定义选择的方式。利用ListSelectionModel接
口,你可以允许用户选择单个或者多个行:
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListSelectionModel有下面这些字段:
* SINGLE_SELECTION允许一次选择一行。
* SINGLE_INTERVAL_SELECTION允许选择相邻的一系列行。
* MULTIPLE_INTERVAL_SELECTION也允许选择相邻的列,但是带有扩展
功能。它允许用户使用[Ctrl]键进行多个互不相邻的选择(即选择不相邻的
行)。
setCellSelectionEnabled()方法让用户能够同时选择单个单元格或者整个
行:
table.setCellSelectionEnabled(true);
如果被设置为是,setCellSelectionEnabled()方法还会允许在选择行和单
个单元格的同时选择列
编辑单元格
我们这个简单的表格允许用户编辑表格里的任何单元格。Listing B列出了
一个表格,它允许由程序员来决定哪些单元格能够被编辑。第一步是创建一
个自定义的TableModel:
class SimpleTableModel extends AbstractTableModel {}
数据被封装在TableModel里,当JTable初始化的时候,自定义的TableModel
就被作为一个参数传递给JTable的构造函数而不是那个二维的对象数组:
SimpleTableModelmyModel = new SimpleTableModel();
JTable table = new JTable(myModel);
如果想让第二列和第三列也变得可以编辑,并把第一列变成恒定的,那么你
就要强制替代TableModel的isCellEditable()方法:
public booleanisCellEditable(int row, intcol){
if (col == 0) {return false;}
else {return true; }
}
简单的表格验证
你需要确保用户只输入整数值,假如说,向第二列("盒子的数量"这一列
)输入值来强制替代setValueAt()方法,并将验证逻辑包括进这个新方法里
。首先,你要检查列是否是整数,以及这个列是否只应该包含整数值:
if (data[0][col] instanceof Integer && !(value instanceof
Integer))
{... } else { data[row][col] = value;}
然后,检查被插入的值是否是个整数。如果它不是的,那么这个字段就不应
该被更新,而且应该要显示一条错误信息:
try {
data[row][col] = new Integer(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, columnNames){
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);
}
要注意,当你更改单元格背景颜色的时候,你还应该更该单元格里所显示的
文本的颜色,让其变得更加易读。图C显示了一个第一列和第二列加上了颜
色的JTable。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunny3106/archive/2007/04/23/1575218.aspx
发表评论
-
snmp
2020-04-13 11:07 397https://www.iteye.com/blog/zhan ... -
snmp
2020-04-10 21:33 526https://blog.csdn.net/qq_333141 ... -
服务器监控软件
2019-12-31 11:07 470[ERROR] org.hyperic.sigar.Sigar ... -
多数据源
2019-12-23 22:09 415https://gitee.com/baomidou/dyna ... -
mybatis多数据源
2019-12-23 18:09 410https://blog.csdn.net/qq_288042 ... -
springboot ueditor
2019-12-17 18:26 349https://blog.csdn.net/u01216982 ... -
java支持多数据源
2019-12-13 15:59 415spxcms是否支持多数据源 ... -
java日志
2019-12-10 12:01 260https://blog.csdn.net/peng_wei_ ... -
spring 多数据源
2019-12-06 09:55 391https://www.jb51.net/article/10 ... -
idea
2019-12-04 17:13 364https://blog.csdn.net/dengachao ... -
手机大屏
2019-11-30 16:02 305http://demo.demohuo.top/modals/ ... -
quarz配置
2019-11-08 11:48 422https://blog.csdn.net/BryantLmm ... -
mysql同步
2019-11-06 12:20 313https://blog.csdn.net/baidu_418 ... -
nginx配置多个服务
2019-11-04 20:35 713https://blog.csdn.net/everljs/a ... -
h5 加壳
2019-11-04 16:05 583https://jingyan.baidu.com/artic ... -
jeui 前端框架
2019-10-22 14:30 1124http://www.jemui.com/demo/ http ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ htt ... -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/ -
jeui 维护
2019-10-22 14:29 2http://www.jemui.com/demo/
相关推荐
java swing GUI界面显示IE网页 根据网址跳转到相应网站
Java Swing实现添加数据到数据库(数据库使用Mysql)并查询数据显示在界面中。
JAVA Swing 实现商品列表,数量加减 ,删除整行 Demo 单击 "添加 "按钮列表增加数据行 单击 数量单元格弹出数量加减窗口 单击 "删除"按钮 删掉当前行商品信息
java swing用Logger输出错误日志
用java swing 实现的pdf阅读器 很强大 喜欢。。。
java swing 多选下拉框 支持动态加载数据 (优化了网上的下拉框代码)
使用Java的Swing组件编写的窗体类程序,用来显示系统当前的日期的时间,并随系统的变化而变化。
用Java程序读取Excel表格里的内容并显示在Swing界面里。
基于java swing的学生信息管理系统.包含基本的登陆、注册和学生信息的显示、添加、修改、删除、查询等功能。运行环境为jdk12
使用的是Swing组件和io流; 使用上传功能获取路径(我这边的是直接指定的,一般是从页面层获取的),然后传到dao层 然后通过dao层将二进制流写到数据库中(附上数据库); 点击下载功能,从数据库中获取二...
JToolTip 是 Java Swing 库提供的一个工具提示组件,用于在鼠标悬停或其他交互事件发生时显示文本提示信息。
网上很多关于Java创建透明图片的例子,但我试过之后都不好使。这个短短几行代码,就可以实现,只是一个方法,直接调用就可以。
Java Swing界面实现数据库基本操作 Java Swing界面实现数据库基本操作 Java Swing界面实现数据库基本操作 Java Swing界面实现数据库基本操作
内含数10个Java Swing的皮肤包,使用时将jar文件添加到项目工程中,同时在主方法中添加对应txt文件中的代码,即可显示皮肤。
这是一个在swing工程中用于显示图片的类,可以直接将它设置为自定义组件,我是用来显示头像的,呵呵!非常实用!是从李宁老师的《独门架构 Java Web开发应用详解》随书光盘中的视频里看到了,但没有看到全部,我稍微...
根据java swing类实现的绘画板,其中可以绘画直线,圆,矩形等
本项目是一套基于Java swing和mysql实现的银行管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。...
使用Java Swing 编写的小程序,可导入Excel ,导出中奖名单,并根据导入的Excel 动画滚动显示参选人员,抽奖和设置页面分开。
java_swing窗体布局,很实用。上传个大家做个分享。找了好久才找到的。
java swing 调用webcam 显示全屏视频图像,支持接收Socket指令拍照无卡顿、无设备占用冲突、支持配置端口配置图片保存地址、支持切换窗口模式、视频图像始终前置模式,避免弹窗影响、支持图片旋转角度调整、支持开机...