【问题标题】:How to add new rows at top of the JTable and Change the color of newly inserted rows in Java?如何在 JTable 顶部添加新行并更改 Java 中新插入行的颜色?
【发布时间】:2023-03-10 13:56:01
【问题描述】:

我正在做一个项目,我必须在一个模块中显示数据网格中的数据(为此我使用 JTable)。问题是,当我在 JTable 中插入数据时,它会填充到表的底部,我想在表的顶部显示新行。请指导我完成这项任务,任何帮助将不胜感激。我正在使用 NetBeans 进行开发。

这是我填充数据的代码:

  public void run() { 
    try { 
          FileWriter out = new FileWriter("test.txt");
          BufferedWriter bufWriter = new BufferedWriter(out);

              int nb = input.readInt();
          System.out.println("Read Length"+ nb);
          byte[] digit = new byte[nb];
          System.out.println("Writing.......");
          for(int i = 0; i < nb; i++)
            digit[i] = input.readByte();

           String st = new String(digit);
          bufWriter.append(st);
           bufWriter.close();
           out.close();
            System.out.println ("receive from : " + 
            clientSocket.getInetAddress() + ":" +
            clientSocket.getPort() + " message - " + st);

                           DefaultTableModel table = (DefaultTableModel)_table.getModel();
            File file = new File("test.txt");
            Scanner f = new Scanner(file);
            String line = null;
            String[] str = null;

            while(f.hasNext()){
                line = f.nextLine().replace('|', ',');
                str = line.split(",");
                                    table.addRow(str);
                                    _table.setBackground(Color.red);


            }


          output.writeInt(st.length());
          output.writeBytes(st); 
        } 
        catch(EOFException e) {
        System.out.println("EOF:"+e.getMessage()); } 
        catch(IOException e) {
        System.out.println("IO:"+e.getMessage());}  

        finally { 
          try { 
              clientSocket.close();
          }
          catch (IOException e){/*close failed*/}
        }
    }

提前致谢。

【问题讨论】:

  • 您不妨考虑使用自己的TableModel,而不是使用默认的。
  • 好的,让我看看教程。

标签: java swing netbeans jtable netbeans-8


【解决方案1】:

问题是,当我在 JTable 中插入数据时,它会填充到表的底部,我想在表的顶部显示新行

table.addRow(str);

实际上,您不是在插入一行,而是在添加一行。尝试阅读 DefaultTableModel API 以获取一种方法,该方法允许您在模型中的指定位置“插入”一行,在您的情况下为第 0 行。

【讨论】:

  • 非常感谢,我刚刚使用insertRow() 填充数据,效果很好。请帮我更改新插入行的颜色,这是我要做的最后一件事,我没有太多时间。
  • @MDaimKhan,很高兴它有帮助。不要忘记“接受”问题,以便人们知道问题已经解决。
  • Please help me in changing the color of the newly inserted rows - 这个要求没有意义。为什么新插入的行需要单独的颜色。如果按两次按钮插入行会发生什么?每个插入组是否有不同的颜色?之前的组会重置吗?没有足够的信息来提供答案。创建一个包含更多详细信息的单独问题。每个帖子只能问一个问题。 I don't have much time - 这与问题无关。时间管理是你的问题。您的问题并不比任何其他问题更重要。
  • What happens if you press the button twice to insert rows? 按钮单击时未填充数据,它将每天填充一次。 Does each insertion group get a different color?Does the previous group get reset? 是的,颜色将重置为默认值。 Not enough information to provide an answer. 你需要多少信息来回答一个我只需要更改新插入行的颜色的简单问题? Only one question per posting should be asked. 是的,我同意这是我的错误,感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2013-05-28
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 2012-06-04
  • 2015-04-24
相关资源
最近更新 更多