int tableRow = 0;
jTableaddMosueListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if(egetButton() == MouseEventBUTTON3){
tableRow = jTablerowAtPoint(egetPoint());
}
}
}
tableRow就是鼠标右键点击的所在行号
应该是在容器中自定义JTable的位置吧?在各种容器中设定组件的位置都差不多。将容器的布局方式设为null,用容器的方法setLayout,然后在容器中绘制组件就行了,就是将组件的边界设定好,使用组件的方法setBounds,下面是一段简单的代码:
import javaawtColor;
import javaxswingJFrame;
import javaxswingJTable;
public class testJLabelLocation{
public static void main(String[] args){
JTable jtb=new JTable();//创建JTable对象
//定义JTable在容器中的位置,x坐标为300,y 100,宽200,高80
jtbsetBounds(300, 100, 200,80);//关键代码1
jtbsetBackground(Colorred);//将JTable的背景色设为红色,
//下面的就是一个显示JFrame的常用代码段了
JFrame jf=new JFrame("testLabel");//创建容器
jfadd(jtb);//将JTable添加到容器中
jfsetLayout(null);//设定容器的布局方式为null 关键代码2
jfsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);//JFrame关闭时事件
jfsetSize(500,500);//容器大小,宽高各500
jfsetVisible(true);//JFrame设为可见
}
}
参考代码如下:
//单行
int getSelectedColumn()
返回第一个选定列的索引;如果没有选定的列,则返回 -1。
int getSelectedRow()
返回第一个选定行的索引;如果没有选定的行,则返回 -1。
Object getValueAt(int row, int column)
返回 row 和 column 位置的单元格值。
//多行
int[] getSelectedColumns()
返回所有选定列的索引。
int[] getSelectedRows()
返回所有选定行的索引。
Object getValueAt(int row, int column)
返回 row 和 column 位置的单元格值。
首先,循环list或者map
再次,就是在循环的时候,把list或者map中的值取出来放到JTable里面
如: for(int i=0;i<listsize();i++){
JTable table = new JTable();
//这个地方就可以创建JTable的 列和行了,或者你在里面定义好字符串然后在列表外面把他们加进去
}
首先Jtable应该有选中一行的事件!
给Jtable添加一个MouseListener 事件!
然后实现 MouseListener 里面的 public void mouseClicked(MouseEvent e) 方法!
然后在该方法写如下代码
int row = mfgetJTable()getSelectedRow(); 获取你鼠标选中的一行!
mf为Jframe!
String number = StringvalueOf(mfgetJTable()getValueAt(row, 0));
String name = StringvalueOf(mfgetJTable()getValueAt(row, 1));
String sex = StringvalueOf(mfgetJTable()getValueAt(row, 2));
String age = StringvalueOf(mfgetJTable()getValueAt(row, 3));
String address = StringvalueOf(mfgetJTable()getValueAt(row, 4));
String phone = StringvalueOf(mfgetJTable()getValueAt(row, 5));
mfgetNameJTextField()setText(name);
mfgetNumberJTextField()setText(number);
mfgetAgeJTextField()setText(age);
mfgetAddressJTextField()setText(address);
mfgetMobileJTextField()setText(phone);
1)检查了一下添加过程,先把所有的数据类型都转换成String,然后添加。在程序中将Float用FloattoString()转换为String。
2)检查jTable的列的数据类型,有String和Float两种。
问题原因:要添加的数据类型与jTable的列定义的数据类型不匹配。
解决方法:1)不将Float转换为String,直接添加;
2)将Float转换为String,将jTable的列的数据类型都改为String,然后添加
以上就是关于swing的JTable中如何添加监听实现我点击鼠标右键获得该单元格数据(也可以是所在行数)全部的内容,包括:swing的JTable中如何添加监听实现我点击鼠标右键获得该单元格数据(也可以是所在行数)、java 中自定义JTable的位置、jTable怎么得到选中行的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)