swing的JTable中如何添加监听实现我点击鼠标右键获得该单元格数据(也可以是所在行数)

swing的JTable中如何添加监听实现我点击鼠标右键获得该单元格数据(也可以是所在行数),第1张

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怎么得到选中行的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9819616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存