首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编辑JTable后获取所选行和列

是指在Java Swing中,当用户对JTable进行编辑操作后,获取用户所选中的行和列的信息。

在JTable中,可以通过以下步骤来获取所选行和列:

  1. 获取JTable的选中行:使用JTable的getSelectedRow()方法可以获取用户所选中的行的索引。如果用户没有选中任何行,则该方法返回-1。
  2. 获取JTable的选中列:使用JTable的getSelectedColumn()方法可以获取用户所选中的列的索引。如果用户没有选中任何列,则该方法返回-1。
  3. 获取JTable的选中单元格的值:使用JTable的getValueAt(int row, int column)方法可以获取用户所选中单元格的值。其中,row为所选中行的索引,column为所选中列的索引。

以下是一个示例代码,演示如何获取JTable的选中行和列:

代码语言:txt
复制
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class JTableSelectionExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("JTable Selection Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建一个二维数组作为JTable的数据模型
        Object[][] data = {
                {"John", "Doe", 30},
                {"Jane", "Smith", 25},
                {"Bob", "Johnson", 35}
        };

        // 创建一个字符串数组作为JTable的列名
        String[] columnNames = {"First Name", "Last Name", "Age"};

        // 创建JTable并设置数据模型和列名
        JTable table = new JTable(data, columnNames);

        // 添加选择监听器,用于监听用户的选择操作
        table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) {
                // 获取选中行的索引
                int selectedRow = table.getSelectedRow();
                // 获取选中列的索引
                int selectedColumn = table.getSelectedColumn();

                // 获取选中单元格的值
                Object selectedValue = table.getValueAt(selectedRow, selectedColumn);

                System.out.println("Selected Row: " + selectedRow);
                System.out.println("Selected Column: " + selectedColumn);
                System.out.println("Selected Value: " + selectedValue);
            }
        });

        // 将JTable添加到一个滚动面板中,并将滚动面板添加到窗口中
        JScrollPane scrollPane = new JScrollPane(table);
        frame.add(scrollPane);

        frame.pack();
        frame.setVisible(true);
    }
}

在上述示例中,当用户选择JTable中的某一行或某一列时,会触发选择监听器中的valueChanged()方法。在该方法中,我们可以通过table.getSelectedRow()和table.getSelectedColumn()方法获取用户所选中的行和列的索引,并通过table.getValueAt()方法获取选中单元格的值。最后,我们将这些信息打印到控制台上。

这是一个简单的示例,你可以根据实际需求进行相应的处理和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JTable常见用法细则+设置某编辑+滚动表格

JTable table = new JTable(); 2)  以表头表数据创建表格. [图片] 3)  以表头表数据创建表格,并且让表单元格不可改....[图片] 二.对表格的控制 1) 设置不可随容器组件大小变化自动调整宽度. table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 2) 限制某的宽度...));// columnIndex是要删除的序号 三.对表格的控制 1) 设置高 table.setRowHeight(20); 2) 设置当前航数 DefaultTableModel tableModel...注:数据是Member类型的链表,Member类如下: [图片] 填充数据的代码: [图片] 2) 取得表格中的数据 [图片] 五.取得用户所选 1) 取得用户所选的单行 [图片]...a1 = new JTable (20,3);   a1.setRowHeight (30);//设置高度   a1.setDragEnabled(true);   //设置第一、二不可可编辑

3.1K00

Pandas库的基础使用系列---获取

前言我们上篇文章简单的介绍了如何获取的数据,今天我们一起来看看两个如何结合起来用。获取指定指定的数据我们依然使用之前的数据。...我们先看看如何通过切片的方法获取指定的所有的数据info = df.loc[:, ["2021年", "2017年"]]我们注意到,的位置我们使用类似python中的切片语法。...同样我们可以利用切片方法获取类似前4这样的数据df.iloc[:, :4]由于我们没有指定名称,所有指标这一也计算在内了。...接下来我们再看看获取指定指定的数据df.loc[2, "2022年"]是不是很简单,大家要注意的是,这里的2并不算是所以哦,而是名称,只不过是用了padnas自动帮我创建的名称。...通常是建议这样获取的,因为从代码的可读性上更容易知道我们获取的是哪一哪一。当然我们也可以通过索引切片的方式获取,只是可读性上没有这么好。

60800
  • 用过Excel,就会获取pandas数据框架中的值、

    在Python中,数据存储在计算机内存中(即,用户不能直接看到),幸运的是pandas库提供了获取值、的简单方法。 先准备一个数据框架,这样我们就有一些要处理的东西了。...要获取前三,可以执行以下操作: 图8 使用pandas获取单元格值 要获取单个单元格值,我们需要使用的交集。...图9 要获得第2第4,以及其中的用户姓名、性别年龄,可以将列作为两个列表传递,如下图所示。 图10 记住,df[['用户姓名','年龄','性别']]返回一个只有三的新数据框架。...接着,.loc[[1,3]]返回该数据框架的第1第4。 .loc[]方法 正如前面所述,.loc的语法是df.loc[],需要提醒(索引)的可能值是什么?...图11 试着获取第3Harry Poter的国家的名字。 图12 要获得第2第4,以及其中的用户姓名、性别年龄,可以将列作为两个列表传递到参数“row”“column”位置。

    19.1K60

    java winform开发之JTable全攻略

    这两天在研究JTable的使用,也有一些收获,所以在这里跟大家分享交流一下,下面的内容将包括:1)JTable的基本用法;2)怎样为JTable添加行点击响应事件,双击打开窗口;3)怎样为JTable...的添加标识,如id等;4)怎样在JTable中动态添加新;     1)JTable的基本用法: 我用的IDE是NetBeans,由于也是简单做几个页面的客户端,主要还是Web开发的,所以暂时不打算深究...,然后右击,选择“表内容”就可以进行表格的编辑了,不过通常情况下,表格的内容都是动态生成的,所以在控件上直接编辑它的内容的意义是不大的,当然,做DEMO时比较有用。...Vector,在 示例中的dataVector是通过遍历一个list对象而动态填充内容的,在实例化并初始化好Vector,只要调用JTable的setModel方法,就可以将头及数据的信息显示在表格中啦...4)怎样在JTable中动态添加新 其实这个问题非常简单,只要根据模型生成相应的对象,然后通过调用JTable的model对象的addRow方法就ok了,由于过于简单,所以直接贴代码来说明问题:

    1.2K30

    pandas中的lociloc_pandas获取指定数据的

    大家好,又见面了,我是你们的朋友全栈君 实际操作中我们经常需要寻找数据的某行或者某,这里介绍我在使用Pandas时用到的两种方法:ilocloc。...读取第二的值 (2)读取第二的值 (3)同时读取某行某 (4)进行切片操作 ---- loc:通过的名称或标签来索引 iloc:通过的索引位置来寻找数据 首先,我们先创建一个...[1,:] (2)读取第二的值 # 读取第二全部值 data2 = data.loc[ : ,"B"] 结果: (3)同时读取某行某 # 读取第1,第B对应的值 data3...,"D","E"]] 结果: 2.iloc方法 iloc方法是通过索引的索引位置[index, columns]来寻找值 (1)读取第二的值 # 读取第二的值,与loc方法一样 data1...columns进行切片操作 # 读取第2、3,第3、4 data1 = data.iloc[1:3, 2:4] 结果: 注意: 这里的区间是左闭右开,data.iloc[1:

    8.8K21

    java swing项目桌面软件还是蛮香的,至少有了我自己的桌面软件|Java 开发实战

    //表格的,需要用户自己设定好private int column;//待加载的数据 数据每行的上面要统一好private List list;public MyTableModel...显示模块去刷新从1-6的所有数据,所以说比如你更新了第一的数据,而你用的两个参数是1,4.那么恭喜你,你的更新JTable无法实现,因为他只更新从第二开始到第五的数据。...),如果不在数据中添加那么我们的getClass方法就起不到作用,这个用到了下面的知识来解决JTable渲染编辑这种呢其实就是上面的getClass底层的实现方式,JTable中源码我们上面可以看出JTable...setCellEditorsetCellRenderer大家可以观察源码,在JTable编辑器中AbstractCellEditor是基础的抽象类,他继承了CellEditor,怎么样熟悉吗,这个不就是...设置完了编辑器,我们最终要是只渲染器,就是JTable最终如何显示的问题。上面的那个一样。

    33310

    如何在Java中使用Table

    在Java中,表用于将数据排列成是表中水平排列的空间,而行是表中垂直排列的空间。之间的交点称为单元格,用于保存单条数据。...您需要在其构造函数中为要构造的表提供两个参数(rowcolumn),如以下示例代码段所示: JTable table = new JTable (row, column); rowcolumn的值可以由两个整数值组成...,如下所示: JTable table = new JTable (5,3); 上面的语句创建了一个包含53的表。...程序员需要创建一个扩展AbstractTableModel类的类: class MyTableModel extends AbstractTableModel{ } 在表模型中,可以包括列名的数据...如何在Java中管理宽和高 如果要设置的高度,可以使用setRowHeight()方法。

    2.1K40

    java swing 添加 jcheckbox复选框

    运行,窗体在屏幕左上角显现并且是最小化的形式。那么关于设置窗体的显示就不再赘述了,值得注意的是窗体的布局必须设置。...其次是表格样式,表格将数据如何显示数据(比如数量、列名称、是否可编辑)保存在其数据模版中,该模版实现自接口TableModel。   最后,表格(每一个单元格)可以设置渲染效果。...* 可以通过rowcolumn索引判断某一个单元格是否可编辑 49 49 * 此处设为都不可编辑 50 50 * @see javax.swing.table.DefaultTableModel...,然后设置单元格渲染 87 85 // 设置列编辑器 88 86 // 在以复选框为对象设置列编辑器时,必须保证该能够被编辑,否则无法更改状态 89 87...// (此步骤可以省略,省略时不要忘记将设为不可编辑) 90 88 // table.getColumnModel().getColumn(1).setCellEditor

    3.3K00

    JTable怎样控制某一、某一单元格允许或不允许被编辑

    网上有很多关于怎样实现JTable不能被编辑的文章,因为如果不设置的话,双击单元格就会将单元格的内容读入一个默认的编辑器里,很多时候我们并不希望这样的事情发生,所以必须do something来阻止它。...false; } }; 没什么神秘的,就是重写DefaultTableModel的方法isCellEditable方法,但更多的情况下,我们是需要指定表格中某一或若干允许被编辑...其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格的索引,所以,根据这个rowcolumn来控制返回true或false,我们的愿望就能实现了...3){ return true; }else{ return false; } } 2、只允许表格的第二、第二的单元格被编辑 public boolean...if(row == 2 && column == 2){ return true; }else{ return false; } } 3、只允许表格的第4

    1.2K10

    【Spark篇】---SparkSQL初始创建DataFrame的几种方式

    同时,与Hive类似,DataFrame也支持嵌套数据类型(struct、arraymap)。...3、SparkSQL底层架构 首先拿到sql解析一批未被解决的逻辑计划,再经过分析得到分析的逻辑计划,再经过一批优化规则转换成一批最佳优化的逻辑计划,再经过SparkPlanner的策略转化成一批物理计划...df.show()默认显示前20数据。 DataFrame原生API可以操作DataFrame(不方便)。 注册成临时表时,表中的默认按ascii顺序显示。...如果现实多行要指定多少show(行数) * 注意:当有多个时,显示的先后顺序是按的ascii码先后显示。...Row类型的数据,但是要注意顺序问题---不常用 * 2.可以使用row.getAs("列名")来获取对应的值。

    2.6K10

    值得练手的JavaGUI项目——色彩调节器的实现【附完整源码】

    RGB值 其实就像我们平常所看到的所有图片,无论是彩色照还是黑白照,其实它们都是有色彩的,更加神奇的是,我们肉眼所看到的所有色彩几乎都是由红(Red)、绿(Green)、蓝(Blue)经过不同深度的调色得到的...首先是设置调色器窗体字体,并且根据我们的需要将窗体进行简单的面板布局,在这里我们可以将窗体划分为一,即:第一摆放三种滑块、第二显示三种颜色的RGB值、第三显示当前得到的颜色。...接下来就是我们对红、绿、蓝三种滑块的RGB值进行监听,并且在RGB值显示区域色彩显示区域作出相应的响应。...在该项目的stateChanged(ChangeEvent e1) 方法中,我们需要获取到三种滑块的RGB值,然后将对应的数值颜色在窗体进行显示: @Override public void stateChanged...RGB值 g = js_green.getValue(); //获取到绿色滑块的RGB值 b = js_blue.getValue(); //获取到蓝色滑块的RGB值 //将三种颜色的RGB值在窗体进行显示

    2.4K20

    Java实现超市管理系统(含数据库)

    来源:https://blog.csdn.net/qq_44859533 ---- 序言: 这次写的超市管理系统,实现的功能有账户的注册、登录,超市商品类别的添加、修改删除以及商品的添加、修改删除的功能...用户注册之后把注册信息导入数据库;用户登录时候查询用户表,方可登录进去;商品类别商品的增加也如注册信息一样,把信息导入商品类别表商品表。...) { this.goodsTypeNameTxt.setText(""); this.goodsTypeDescTxt.setText(""); } //表格点击事件...();//获取行数 idTxt.setText((String)jTable1.getValueAt(row,0)); goodsTypeNameTxt.setText(...((String)jTable1.getValueAt(row,3)); } //鼠标单击,修改 private void jButton2ActionPerformed(java.awt.event.ActionEvent

    3.4K31

    Linux私房菜:vi与vim编辑

    vi/vim模式 一般指令模式 ( command mode ) vi/vim File,打开文件即进入当前模式 编辑模式 ( edit mode ) 一般指令模式下,按i,I,a,A,...M 屏幕中间最前面 L 屏幕最后一最前面 G 跳到文件最后一 n + G 跳到文件第n gg 跳到文件第一,相当于1G n + enter键 往下移动n 搜索、替换 说明 /word 向下搜索...重复做上一个操作 从一般指令模式进入编辑模式,对应的常用操作键: 操作 说明 i 光标所在处前开始插入 I 所在最前面开始插入 a 光标所在处开始插入 A 所在最后面开始插入 o 光标所在处上一开始插入...区块选择 操作 说明 v 字符选择,将光标移动过的位置全部选择 V 选择,将光标移动过的位置全部选择 ctrl + v 区块选择,将光标移动过的位置全部选择 y 复制上述所选 d 删除上述所选 p...粘贴上述所选 多文件编辑 vim还支持同时打开多个文件,用于跨文件操作:vim file1 file2 file* 操作 说明 n 编辑下一个文件 N 编辑上一个文件 files 列出当前vim编辑的所有文件

    1.3K30

    java超市仓库管理系统(超市条形码管理系统)

    图2 3、单击“添加商品”按钮,弹出如图3所示的窗体,此时必须输入所有商品信息, 否则将弹出如图4所示的对话框;当商品信息输入完毕,单击“确定”按钮,实现商品的添加, 在弹出如图5所示的对话框,释放窗体...5、获取选定的索引值,参考代码如下: int index=table.getSelectedRow();//table为表格对象 获取选定的商品名称,参考代码如下: table.getValueAt...(index,1);//index为选定的索引值 6、在编写代码时,最好用方法对重复使用的代码进行封装,尽量减少代码的冗余; 7、编译程序,并运行。...五、注意事项 A、仔细审题,把题目要求理解准确; B、请注意按照的界面的设计要求来进行窗体设计; C、请注意代码的书写、命名符合规范适当的注释; 评分标准:超市管理系统—商品管理(查询及删除商品)...(jTable.getValueAt(jTable.getSelectedRow(), 2).toString()); String price = jTable.getValueAt(jTable.getSelectedRow

    3.5K20

    MySQL 之 JSON 支持(三)—— JSON 函数

    COLUMNS 子句评估源,在行源中查找特定的 JSON 值,并将这些 JSON 值作为关系数据的各个中的 SQL 值返回。 alias 是必需的。...JSON_STORAGE_SIZE() JSON_STORAGE_FREE() 分别显示给定 JSON 值使用的存储空间大小部分更新 JSON 中剩余的空间大小。 1....对象成员的键值由冒号空格(': ')分隔。 空对象或数组打印在一上。左大括号右大括号之间没有空格。 字符串标量键名中的特殊字符采用与 JSON_QUOTE() 函数相同的规则进行转义。...下例中创建一个包含 JSON 的表,然后插入一包含 JSON 对象: mysql> CREATE TABLE jtable (jcol JSON); Query OK, 0 rows affected...为了说明此函数与 JSON 一起使用时的行为,创建一个名为 jtable 的表,其中包含 JSON jcol,在表中插入一个 JSON 值,然后使用 JSON_STORAGE_SIZE() 获取使用的存储空间

    61310

    Java课程设计之 学生成绩管理系统「建议收藏」

    //定义一个方法设置表格 setList(); //调用setlist方法 a=new Object[list.size()][name.length]; //实例化数组a,并设置其的大小...定义一个方法设置表格 setList(); //初始情况下先调用setList方法 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其的大小...field.getText(),"asc"); //条件成立的情况下设置参 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其的大小...field.getText(),"desc"); //条件成立的情况下设置参数 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其的大小...setList(); //初始情况下先调用setList方法 aa=new Object[list.size()][name.length]; //实例化数组aa,并设置其的大小

    4.5K43
    领券