JTable 计算正在使用的行数并返回该数字

2024-02-27

我正在做一个小项目“停车场表”。它允许您添加、删除和搜索汽车。除此之外,它还意味着返回已经停放的汽车数量。 我的问题是:

如何编写一个代码来计算已使用的行数并返回正在使用的行数? 大概通过按钮或通过标签自动更新。

注意:抱歉造成混乱。

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

public class ParkingTable {

  public static void main(String args[]) {



    JFrame frame = new JFrame("Car Parking Table");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);




 /**********************************************************************/ 


   String columns[] = { "Reg","Bay" };
    Object rows[][] = {

    //Population
    { "IL39D",     1 }, 
    { "HEL39D",     2 }, 
    { "AD903",     3 },
    { "TE3P3P",    4 }, 
    { "EPO338C",   5 }, 
    { "J03C33",    6 },
    { "AOEC3CC",   7 }, 
    { "VVVAV33",   8 }, 
    { "AVARG033",  9 },
    { "AEED33",    10 }, };



    TableModel model = new DefaultTableModel(rows, columns) {
  public Class getColumnClass(char column) {
    Class returnValue;
    if ((column >= -1) && (column < getColumnCount())) {
      returnValue = getValueAt(-1, column).getClass();
    } else {
      returnValue = Object.class;
    }
    return returnValue;
  }
};

  /**********************************************************************/   


    final JTable table = new JTable(model);
    final TableRowSorter<TableModel> sorter = new TableRowSorter<>(model);
    table.setRowSorter(sorter);



  /**********************************************************************/  
    //Table
    JScrollPane scrTable = new JScrollPane(table);
    frame.add(scrTable , BorderLayout.CENTER);


   //Panel
    JPanel panel = new JPanel(new BorderLayout());
    frame.add(panel, BorderLayout.NORTH);


 /**********************************************************************/
    //Find The Car
    final JTextField tfFilter = new JTextField();

    tfFilter.addFocusListener(new FocusAdapter() {
   public void focusGained(FocusEvent fEvt){     
      tfFilter.setText("Enter The Reg Number To Find The Car");
      tfFilter.selectAll();

   } 

});

tfFilter.addKeyListener(new KeyAdapter(){
    public void keyReleased(KeyEvent e){
        String st=tfFilter.getText();
        tfFilter.setText(st.toUpperCase());
    }
});

 /**********************************************************************/

    //Reg Number
    final JTextField tfReg= new JTextField("Enter Car Reg");

    tfReg.addFocusListener(new FocusAdapter() {
       public void focusGained(FocusEvent fEvt){
      tfReg.setText("Enter Car Reg");
      tfReg.selectAll();
       } 

});
     tfReg.addKeyListener(new KeyAdapter(){
    public void keyReleased(KeyEvent e){
        String st=tfReg.getText();
        tfReg.setText(st.toUpperCase());
    }
    });


/**********************************************************************/



//Bay Number
    final JTextField tfBay= new JTextField("Enter The Bay NUMBER");

    tfBay.addFocusListener(new FocusAdapter() {
   public void focusGained(FocusEvent fEvt){
      tfBay.setText("Enter The Bay NUMBER");
      tfBay.selectAll();
   } 

    });

   tfBay.addKeyListener(new KeyAdapter(){
     public void keyTyped(KeyEvent e){
     char vChar=e.getKeyChar();
     if(!(Character.isDigit(vChar)||
             (vChar== KeyEvent.VK_BACK_SLASH)||
             (vChar==KeyEvent.VK_DELETE))){
         e.consume();
     }
 }
   });


 /**********************************************************************/

//Butons
JButton btnFilter = new JButton("Filter");
JButton btnAdd = new JButton ("Add");
JButton btnDelete=new JButton("Delete");


//Filter For The Reg
btnFilter.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    String text = tfFilter.getText();
    if (text.length() == 0) {
      sorter.setRowFilter(null);
    } else {
      sorter.setRowFilter(RowFilter.regexFilter(text));
         }
     }
});

/**********************************************************************/  

//Add Car To Bay
btnAdd.addActionListener(new ActionListener(){
    @Override
    public void actionPerformed(ActionEvent e) {
        DefaultTableModel model=(DefaultTableModel) table.getModel();
        if(!tfReg.getText().trim().equals("")){
            model.addRow(new   Object[]{tfReg.getText(),tfBay.getText()});


              }
       }      
});

/**********************************************************************/

//Delete The Selected Car
btnDelete.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        DefaultTableModel model=(DefaultTableModel) table.getModel();
        if(table.getSelectedRow()==-1){
            if(table.getRowCount()==0){   
            }
        }else{
            model.removeRow((table.getSelectedRow()));
            }    
      }
});

/**********************************************************************/

//Placing Of  Buttons And  Text Boxes
frame.add(btnFilter, BorderLayout.SOUTH);
frame.add(btnAdd, BorderLayout.WEST);
frame.add(btnDelete, BorderLayout.EAST);

panel.add(tfReg,BorderLayout.CENTER);
panel.add(tfBay,BorderLayout.AFTER_LAST_LINE);
panel.add(tfFilter,BorderLayout.BEFORE_FIRST_LINE);

frame.setSize(350, 350);
frame.setVisible(true);

}

}

您可以使用model.getRowCount()方法返回表中的行数。 t

您还可以限制您的模型以保存特定数量的行,使用这些行创建您的数据模型这个构造函数 http://docs.oracle.com/javase/7/docs/api/javax/swing/table/DefaultTableModel.html#DefaultTableModel%28java.util.Vector,%20int%29.

public DefaultTableModel(Vector columnNames,
                 int rowCount)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JTable 计算正在使用的行数并返回该数字 的相关文章

  • 在Java中如何将数字转换为字母?

    有没有比这更好的方法将数字转换为其字母等效值 private String getCharForNumber int i char alphabet ABCDEFGHIJKLMNOPQRSTUVWXYZ toCharArray if i g
  • 使用矩阵参数创建 GET 请求

    我将使用的网络服务需要矩阵参数 http tester com v1 customers lastname Jackson firstname Tim bookingreference 7Y9UIY 而不是通常的 http tester c
  • Java程序在没有定义main方法的情况下如何运行?

    我正在浏览一些 Java 源代码并注意到main方法未定义 Java如何编译源码却无从下手 The main方法仅在 Java 虚拟机执行代码时使用 没有 a 则无法执行代码main方法 但仍然可以编译 编译代码时 通常在命令行上指定一组文
  • Java 中修剪字符串的可能前缀

    I have String str 我想从中提取不包括可能的前缀的子字符串 abc 我想到的第一个解决方案是 if str startsWith abc return str substring abc length return str
  • 我收到异常: java.lang.IllegalStateException: getOutputStream() 已被调用用于此响应

    我想编写代码来下载保留在我的系统中的文件 这是我的代码 在控制器类中 我有以下映射 RequestMapping value processFile method RequestMethod POST public ResponseBody
  • C# 到 Java:Base64String、MemoryStream、GZipStream

    我有一个在 NET 中压缩的 Base64 字符串 我想将其转换回 Java 中的字符串 我正在寻找一些与 C 语法等效的 Java 语法 特别是 Convert FromBase64String 内存流 压缩流 这是我想要转换的方法 pu
  • Apache POI - JAVA - 迭代 Excel 中的列

    这里是java新手 我正在编写一个代码 该代码读取 Excel 文件 查看列中的单元格 然后编写如下表所示的内容 我有一个 Excel 文件 如下所示 col1 col2 col3 col4 row1 2 3 1 1 w row2 3 2
  • 如何设置 Eclipse 以停止发生异常的线路?

    如何设置 Eclipse 在发生异常时停止 我有一个 Eclipse 断点设置来在异常时中断 在下面的代码示例中 我遇到的问题是 Eclipse 尝试打开 Integer 源代码 有没有办法让调试器在我的代码示例中显示的位置中断 如果我向下
  • 将十六进制字节数组解码为特定代码页在随后编码时会产生错误结果

    我创建了一个简单的应用程序 如下所示 String stringValue new String new byte 0x00 0x00 0x00 0x25 273 byte valueEncoded Arrays copyOfRange s
  • Java中的字符算术

    在玩的过程中 我遇到了一些对我来说似乎很奇怪的事情 以下不是有效的 Java 代码 char x A x x 1 possible loss of precision 因为其中一个操作数是整数 所以另一个操作数被转换为整数 结果无法分配给字
  • 如果表不存在,如何使用 Derby Db 创建表

    我是新来的apache derby我似乎无法工作 CREATE TABLE IF NOT EXISTS table1 可以实现MySql等等我得到了 Syntax error Encountered NOT at line 1 column
  • cipher.update在java中做什么?

    我正在实施 DES CBC 我很困惑什么cipher init cipher update and cipher dofinal做 我只是使用 init 来设置密钥dofinal得到结果 我不使用更新 那是对的吗 另外使用时结果有什么不同U
  • 如何使用 Java glob 模式搜索(区分大小写)文件?

    我正在检查获取路径匹配器 http docs oracle com javase 7 docs api java nio file FileSystem html getPathMatcher 28java lang String 29的方
  • 如何从java程序中编译.java文件[重复]

    这个问题在这里已经有答案了 可能的重复 从 Java 内部编译外部 java 文件 https stackoverflow com questions 10889186 compiling external java files from
  • JVM 是否会内联对象的实例变量和方法?

    假设我有一个非常紧密的内部循环 每次迭代都会访问和改变一个簿记对象 该对象存储有关算法的一些简单数据 并具有用于操作它的简单逻辑 簿记对象是私有的和最终的 并且它的所有方法都是私有的 最终的和 inline 下面是一个示例 Scala 语法
  • 使用java服务中的Zxing库从单个图像文件中读取多个条形码

    您好 我已经创建了一个java服务 用于从此处的图像中读取条形码 我使用Zxing库来解码此处的文本 挑战是 如果一个带有单个条形码的文件工作正常 如果有多个条形码 它会产生不相关的结果 我在下面给出了我的代码 pom xml
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • Java:如何复制对象数组?

    现在 我有一个 Point 对象数组 我想制作一个COPY该数组的 我尝试过以下方法 1 Point temp mypointarray 2 Point temp Point mypointarray clone 3 Point temp
  • 扫描图像到可读文本

    我想知道是否有一种方法可以通过编写代码来将带有文本的扫描图像转换为可读文本 那可能吗 OCRTools http www ocrtools com是我用于 net 的 对于Java 我用过Aspire http asprise com pr
  • “您的安全设置已阻止本地应用程序运行”Java 8

    我正在尝试在 Chrome 窗口中运行一个小小程序 但收到错误消息 我确实看到所有回复都告诉我将安全性更改为中级 但版本 8 中不存在该选项 到目前为止 几个小时的谷歌搜索和向同学寻求帮助没有带来任何进展 有人可以建议一下吗 Medium在

随机推荐

  • C#中使用ffmpeg提取帧时帧率慢且资源占用高

    我目前正在开发一个项目 需要在 C 中使用 ffmpeg 从视频中提取帧 但是 我面临帧速率慢和资源使用率高的问题 我使用的代码如下 private bool move false private int master frame 0 pr
  • C 流:直接将数据从一个流复制到另一个流,不使用缓冲区

    我想将数据从一个流复制到另一个流 现在通常情况下 我会这样做 n fread buffer 1 bufsize fin fwrite buffer 1 n fout 有没有办法直接写入数据fin to fout 不经过缓冲区 即代替fin
  • 删除 XDocument 中的所有评论

    我正在阅读 XDocument 如何从 XDocument 中删除所有注释行 我尝试过 doc DescendantNodes Where x gt x NodeType XmlNodeType Comment Remove 但这仅删除带有
  • ASP.NET MVC 3:需要部署哪些 dll?

    在未安装 ASP NET MVC 3 的服务器上部署 ASP NET MVC 3 应用程序时 哪些文件需要将 复制本地 标记为 True From http www hanselman com blog BINDeployingASPNET
  • 使用 iTextSharp 将块的一部分右对齐

    我是 iTextSharp 新手 我正在尝试创建 PDF 只是一个简单的例子 如果我做这样的事情 Paragraph p new Paragraph p Add new Chunk 789456 Test f5 newDocument Ad
  • 无法使用 MSSQL 在 PDO 中引用表名

    我必须使用某人的数据库来开发游戏 遗憾的是该游戏有一个名为 User 或 dbo User 的表 并且无法重命名 现在 我需要在 PHP 中使用 PDO 访问它 并且当我使用此查询时 query SELECT UserId AS INTUS
  • 在 C++ 文件 CDT 中包含 Python.h

    如果这是一个愚蠢的问题 我深表歉意 但我尝试用谷歌搜索这个 但找不到任何可以指引我正确方向的东西 我只是想了解我需要做什么来 设置 cdt 以 理解 我的 python h 包含内容 错误的说法是这样的 include
  • 确保派生类构造函数必须调用特定基类方法

    在 C 03 类中 我有一个成员变量 它must在对象构造期间被赋值 但是 只有派生类可以计算所需的值 正如这篇文章中所讨论的C 是否要求从派生类初始化基类成员 https stackoverflow com questions 12169
  • 有效地计算组合和排列

    我有一些代码来计算排列和组合 并且我正在努力使其更好地处理大量数字 我找到了一种更好的排列算法 可以避免大量的中间结果 但我仍然认为我可以在组合方面做得更好 到目前为止 我已经提出了一个特殊情况来反映 nCr 的对称性 但我仍然希望找到一种
  • WHERE col IN 以空数组作为参数的查询

    从例子where col in 示例 https github com vitaly t pg promise wiki Learn by Example where col in values and 这个答案 https stackov
  • 初始化的数组是否保留其顺序?

    假设我初始化一个数组有点像这样 int anArray 100 200 300 400 500 600 700 800 900 1000 是否保证元素始终按照我在初始化时输入的顺序插入 例如 100 200 300 400 500 600
  • Android Play 计费库:获取产品介绍价格?

    我正在研究使用新的播放计费库 https developer android com google play billing billing library html 我关心的一件事是产品介绍价格 我想知道是否有办法检索新图书馆的介绍价格
  • 如何将多个 gsoap 客户端 Web 服务编译为一个可执行文件?

    I using gSOAP对于网络服务 但我有一个问题必须 将 2 个 Web 服务编译成一个可执行文件 还有一些 函数具有相同的名称 而不是使用参数 函数名称的其他前缀 编译错误 X o In function soap get stri
  • C 中的文件结束符 - EOF

    你输入什么来结束程序 1 不起作用 include
  • 在 Google 可视化中单击按钮后绘制图表

    我试图弄清楚如何在单击按钮后绘制图表 我的代码似乎有问题 我使用 Google 可视化和 Javascript 来完成此活动 有人可以看一下吗 CODE
  • 使用 jQuery .attr 或 .prop 设置属性值不起作用

    我创建了一个按钮 其属性名为 loaded 初始值为 no 单击按钮后 我正在运行一些 ajax 并在最后尝试将 已加载 属性设置为 是 以便如果用户多次单击该按钮 ajax 就不会再次运行 我有这样的事情 http jsfiddle ne
  • 滚动条在 WebView 的

    我有包含滚动分区的 Html 文件 当我在 WebView 中添加此 HTML 时 它不会显示该 div 的滚动条 我在 Html 文件中有代码 some Html code table style border 3px solid bla
  • Xcode4 与 Mac OS X 10.4 SDK

    在 Xcode 的最新版本 Xcode 4 0 中 不再包含 10 4 SDK 但是 我仍然需要支持 10 4 和 PowerPC 版本 我已经安装了最新的 Xcode 3 2 6 它仍然包含 10 4 支持 然后我安装了Xcode4 有没
  • 使用 C# 向 USB 连接的 GPRS 调制解调器发送 AT 命令

    任何人都可以给我一个关于如何访问连接到 USB 端口的 GPRS 调制解调器的良好指示或指南 我应该为我的程序制作一个 USB 驱动程序以将 AT 命令发送到调制解调器吗 或者就像一个路由器 我可以使用IP地址访问它 谢谢 如果 Windo
  • JTable 计算正在使用的行数并返回该数字

    我正在做一个小项目 停车场表 它允许您添加 删除和搜索汽车 除此之外 它还意味着返回已经停放的汽车数量 我的问题是 如何编写一个代码来计算已使用的行数并返回正在使用的行数 大概通过按钮或通过标签自动更新 注意 抱歉造成混乱 import j