当前位置: 技术问答>java相关
JTable里面,当鼠标选定一条记录时,如何获取该记录的某个字段并放入一个jTextField?
来源: 互联网 发布时间:2015-06-09
本文导语: JTable里面,当鼠标选定一条记录时,我想将该记录的某个字段取出并放入一个jTextField里面将它显示出来。请问该如何处理? 逍遥思辨给我下面代码: table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { ...
JTable里面,当鼠标选定一条记录时,我想将该记录的某个字段取出并放入一个jTextField里面将它显示出来。请问该如何处理?
逍遥思辨给我下面代码:
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
String value = (String)table.getValueAt(table.getSelectedRow(), 0) //选中行的第一个字段
jTextField1.setText(value);
}
}
});
我中间的给jTextField1赋值看得懂。但是此代码放入程序出错。
于是我仿照jb6里面通过控件生成JButton的actionPerformed事件模仿改为:
table.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {//这个ListSelectionListener是我随便添的
public void SelectionListener(ListSelectionEvent e) {
valueChanged(e);
}
});//程序中此段有错,我也不知道是不是该这么写
void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
String value = (String)table.getValueAt(table.getSelectedRow(), 0);
//选中行的第一个字段
jTextField1.setText(value);
}
}//此方法正常
请问谁能帮我改正上面的代码来达到我的要求?
如果能用其它形式完成亦可。
分不是问题,不够再加!!!!!
逍遥思辨给我下面代码:
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
String value = (String)table.getValueAt(table.getSelectedRow(), 0) //选中行的第一个字段
jTextField1.setText(value);
}
}
});
我中间的给jTextField1赋值看得懂。但是此代码放入程序出错。
于是我仿照jb6里面通过控件生成JButton的actionPerformed事件模仿改为:
table.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {//这个ListSelectionListener是我随便添的
public void SelectionListener(ListSelectionEvent e) {
valueChanged(e);
}
});//程序中此段有错,我也不知道是不是该这么写
void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
String value = (String)table.getValueAt(table.getSelectedRow(), 0);
//选中行的第一个字段
jTextField1.setText(value);
}
}//此方法正常
请问谁能帮我改正上面的代码来达到我的要求?
如果能用其它形式完成亦可。
分不是问题,不够再加!!!!!
|
刚才开会去了,迟复为歉。
我的代码没错,给table的selectionModel添加监听器(用一个匿名内部类来实现),监听器实现了valueChanged方法,在valueChanged方法中处理逻辑
只不过String value = (String)table.getValueAt(table.getSelectedRow(), 0) //选中行的第一个字段 里少写了一个;号倒是真的
我的代码没错,给table的selectionModel添加监听器(用一个匿名内部类来实现),监听器实现了valueChanged方法,在valueChanged方法中处理逻辑
只不过String value = (String)table.getValueAt(table.getSelectedRow(), 0) //选中行的第一个字段 里少写了一个;号倒是真的
|
且不管你用哪种,我仔细看了你贴出来的代码,是你写错了。valueChanged方法是ListSelectionListener接口下须重载的方法,所以你须将代码改正如下:
第一段:
table.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
public void valueChanged (ListSelectionEvent e) {
doSelectShow(e);//此方法做你想做的事情
}
});
第二段,自定义doSelectShow方法
void doSelectShow(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
String value = (String)table.getValueAt(table.getSelectedRow(), 0);
//选中行的第一个字段
jTextField1.setText(value);
}
}
这样就不会出错了
第一段:
table.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
public void valueChanged (ListSelectionEvent e) {
doSelectShow(e);//此方法做你想做的事情
}
});
第二段,自定义doSelectShow方法
void doSelectShow(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
String value = (String)table.getValueAt(table.getSelectedRow(), 0);
//选中行的第一个字段
jTextField1.setText(value);
}
}
这样就不会出错了
|
你不是有个JTable的事例吗?例如:JTable t=new JTable();我想用这两个最好:
t.addMouseListener(MouseListener);
t.addMouseMotionListener(MouseMontionLister);
在这两个事件里实现最好,因为valuechnged()只要你的value变了,无论你点不点表中的记录,JTextField里的value都会该变.你不防试试我告诉你的方法.ok?
t.addMouseListener(MouseListener);
t.addMouseMotionListener(MouseMontionLister);
在这两个事件里实现最好,因为valuechnged()只要你的value变了,无论你点不点表中的记录,JTextField里的value都会该变.你不防试试我告诉你的方法.ok?
|
定義一個TableColumn
TableColumn myColumn = table.getColumnModel().getColumn(2);
JTextField myTextField = new JTextField();
myColumn.setCellEditor(new DefaultCellEditor(myTextField ));
就把myTextField加到table中去了
取值就自己取吧,很容易的
TableColumn myColumn = table.getColumnModel().getColumn(2);
JTextField myTextField = new JTextField();
myColumn.setCellEditor(new DefaultCellEditor(myTextField ));
就把myTextField加到table中去了
取值就自己取吧,很容易的
|
其实是很简单的,你不要用swing这个控件,用dbswing,
将JTable改成 JdbTable ,将JTextField改成JdbTextField,另外在用上database Express中间database控件进行数据库连接.
将jdbTextField与对应的字段进行绑定,那么就可以了
其实这就是数据感知控件的用法,至于具体的你可以参考一些相关的书,关于数据感知控件的,非常简单与轻松.
将JTable改成 JdbTable ,将JTextField改成JdbTextField,另外在用上database Express中间database控件进行数据库连接.
将jdbTextField与对应的字段进行绑定,那么就可以了
其实这就是数据感知控件的用法,至于具体的你可以参考一些相关的书,关于数据感知控件的,非常简单与轻松.