使用 JTable 会导致应用程序的其余部分加载不正确

首先,这是针对学校项目的,所以我无法上传我的完整代码。我们得到了一个空白项目,并被要求为其添加功能。

我希望能够在各种表格中显示来自服务器的数据,每个表格都在一个单独的选项卡中,每个“页面”都可以选择向表格中添加,编辑或删除记录。

由于我有很多不同的表,所以我写了一个父类Page,它将包含一个表和一些JPanels,如果需要,我可以向其中添加按钮。

但是,每当我尝试将JTable添加到Page时,它都会在选项卡之间导致不可预测的行为 - 请注意,无论我是否使用TableModel,都会发生这种情况。

我尝试使用标签来显示组件应该在的位置,这工作正常,但是使用实际的表格会导致占位符标签和顶部的选项卡被隐藏。

带有标签的选项卡,用于说明组件应位于何处

我尝试添加JTable后的选项卡 - 其余的代码(包括其他占位符标签)是相同的

我没有对线程做任何事情,所以当我尝试添加我的JTable时,我不知道应用程序发生了什么。

这是 Page.java 的代码:

我使用以下代码将新页面添加到我的选项卡系统:


JTabbedPane tabs = new JTabbedPane();

tabs.add("A", new Page(new String[]{"A"}));

tabs.add("B", new Page(new String[]{"B"}));

tabs.add("C", new Page(new String[]{"C"}));

tabs.add("D", new Page(new String[]{"D"}));

String[] 是我要显示的列的名称 - 请注意,一旦我让表正常工作,这些列将被替换为实际有用的名称。


任何想法我做错了什么?我尝试过使用ChangeListener事件重新绘制我的框架,但这似乎没有任何作用。


谢谢!


编辑其中包括代码的完整版本。对 Page 使用上面的代码,并在 Main 类中使用它:


import java.awt.*;

import javax.swing.*;

public class Main {

    public static void main(String[] args) {

        JFrame window = new JFrame("Components and Containers");

        window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE) ;

        window.setSize(800,600);


        Container pane = window.getContentPane();

        JTabbedPane tabs = new JTabbedPane();

        tabs.add("A", new Page(new String[]{"A"}));

        tabs.add("B", new Page(new String[]{"B"}));

        tabs.add("C", new Page(new String[]{"C"}));

        tabs.add("D", new Page(new String[]{"D"}));

        pane.add(tabs);

        window.setVisible(true);

    }

}

我尝试将表格添加到滚动面板,只有当您将鼠标悬停在其上时,表格才会变得可见。选项卡仍未正确显示。


将表添加到单独的 ScrollPanel 而不是直接添加到组件的结果。


慕桂英546537
浏览 71回答 1
1回答

梵蒂冈之花

您的表模型类在行/列排序方面不一致。在构造函数中,您编写data=new Object[names.length][0];这意味着第一个索引是列号,第二个索引是行号。但是,在访问数据(在 中 ,)时,您可以以另一种方式使用 indizes:getValueAtsetValueAtdata[rowIndex][columnIndex]还有,这个:public int getRowCount() {     return data.length; }将列计数返回为行计数,这意味着只要 JTable 尝试调用 ,您就会得到 一个。ArrayIndexOutOfBoundsExceptiongetValueAt(0, 0)若要解决此问题,应使用以下命令初始化构造函数中的数据数组:data=new Object[0][names.length];
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java