关于JTable设置数据源以及获取焦点行数据问题
2013-10-27 10:12
309 查看
这两天完成了一个学生信息管理系统,其中Swing做界面,mysql为数据库。
其中,显示数据库的数据我是用的JScrollPane中添加Jtable的方法做的,把数据库的内容作为数据源显示在JTable中,以下是相关代码:
JFrame中
table = new JTable(new MyTableModel(list)); //传入数据源
jsp = new JScrollPane(table);
table.setBounds(0, 0, 600, 400);
jsp.setBounds(50, 70, 600, 400);
特别还注意的是要设置新的数据源信息可以用table.setModel(new MyTableModel(list));方法
数据源 MyTableModel中
public class MyTableModel extends AbstractTableModel
{
StudentImpl si = new StudentImpl();
//表头
String[] names = null;
//数据
String[][] datas = null;
public MyTableModel(List<StudentBean> list)//构造函数传入数据源信息
{
/*构造数据*/
names = getNames();
if(list==null){
list = si.getAll();
}
datas = new String[list.size()][];
for(int i=0;i<list.size();i++)
{
StudentBean sb = list.get(i);
String gender = null;
if(sb.isGender()){
gender = "男";
}
else gender = "女";
datas[i] = new String[]{sb.getSno()+"",sb.getSname(),sb.getAge()+"",gender,sb.getBirthday()+""} ;
}
}
在做到删除功能时,我有些犹豫,本来想通过再创建个jFrame然后传id删的,但考虑再三后觉得不太妥,于是百度了下如何获取JTable中焦点行的数据,以下是相关代码:
String num = "" + table.getValueAt(table.getSelectedRow(),0).toString();//得到选中行的学号,其中getSelectedRow()方法取得所在选择的行,参数0代表该行的第一列。
要获得焦点行所在的所有列的数据,只需对参数加个循环即可。
其中,显示数据库的数据我是用的JScrollPane中添加Jtable的方法做的,把数据库的内容作为数据源显示在JTable中,以下是相关代码:
JFrame中
table = new JTable(new MyTableModel(list)); //传入数据源
jsp = new JScrollPane(table);
table.setBounds(0, 0, 600, 400);
jsp.setBounds(50, 70, 600, 400);
特别还注意的是要设置新的数据源信息可以用table.setModel(new MyTableModel(list));方法
数据源 MyTableModel中
public class MyTableModel extends AbstractTableModel
{
StudentImpl si = new StudentImpl();
//表头
String[] names = null;
//数据
String[][] datas = null;
public MyTableModel(List<StudentBean> list)//构造函数传入数据源信息
{
/*构造数据*/
names = getNames();
if(list==null){
list = si.getAll();
}
datas = new String[list.size()][];
for(int i=0;i<list.size();i++)
{
StudentBean sb = list.get(i);
String gender = null;
if(sb.isGender()){
gender = "男";
}
else gender = "女";
datas[i] = new String[]{sb.getSno()+"",sb.getSname(),sb.getAge()+"",gender,sb.getBirthday()+""} ;
}
}
在做到删除功能时,我有些犹豫,本来想通过再创建个jFrame然后传id删的,但考虑再三后觉得不太妥,于是百度了下如何获取JTable中焦点行的数据,以下是相关代码:
String num = "" + table.getValueAt(table.getSelectedRow(),0).toString();//得到选中行的学号,其中getSelectedRow()方法取得所在选择的行,参数0代表该行的第一列。
要获得焦点行所在的所有列的数据,只需对参数加个循环即可。
相关文章推荐
- JAVA JTable 关于表格初始化设置、表格事件监听及数据更新问题
- 基础向:recyclerView 内嵌 edittext checkbox 焦点获取、数据紊乱以及数据保存问题
- 关于android中EditText自动获取焦点并弹出键盘的相关设置
- sqlserver2008设置表、存储过程等对象筛选出现“无法为该请求检索数据。 (Microsoft.SqlServer.Management.Sdk.Sfc) ”以及智能提示失效问题
- 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
- 关于Android7.0版本及其以上系统获取本地数据(图片和文件)报系统出现异常,正在退出问题
- 使用<a>标签提交表单数据的问题以及获取session作为函数的参数调用的问题
- 关于获取焦点后、软盘弹出后布局不能上顶起来的问题
- 关于 JTable 刷新绘制(repaint) 以及JTable各属性设置
- 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
- 关于VS2013 MFC单文档菜单项设置复选框的出现的问题以及处理方法
- DataReader为数据源时的数据获取时的数据获取问题
- 关于extjs4如何获取grid修改后的数据的问题
- 关于jboss 5.0.0 上配置数据源要注意的一个问题 Java获取JBOSS数据源
- 关于swift里面xml数据的解析设置问题
- 关于51地图中循环根据经纬度获取地理位置只显示一条数据的问题
- 关于单选框、下拉框、复选框的数据回显问题以及全选和全不选
- php、asp.net关于后台设置的cookie前台JS获取时出现中文乱码问题解决
- 关于JQuery获取表格中任意单元格的数据问题
- listview/gridview上checkbox和button以及item获取焦点的问题