java - 在 JPane 中安装 JTable 并垂直滚动

标签 java swing jtable panel jscrollpane

我有一个像这样的面板:

    panel2.setBackground(Color.YELLOW);
    panel2.setSize(185,400);
    panel2.setLocation(5,150);
    panel2.add(table1,sp1);

其中有一个 JTable :

    Object[][] data = {{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},
    {000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},
    {000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},
    {000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},
    {000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},{000,00},
    {000,00},{000,00},};

    String[] columnNames = {"DIN","DEN"};

    DefaultTableModel defTableModel = new DefaultTableModel(data,columnNames);
    JTable table1 = new JTable(defTableModel);

    JScrollPane sp1 = new JScrollPane(table1);

    Dimension scrollpaneDimension = new Dimension(185, 400);
    sp1.setVerticalScrollBarPolicy(sp1.VERTICAL_SCROLLBAR_ALWAYS);
    table1.setPreferredScrollableViewportSize(scrollpaneDimension);
    table1.setFillsViewportHeight(true);

我几乎尝试了我发现的所有内容,我测试了 GridBagLayout 并使用其约束和 c.fill = GridBagConstraints.HORIZONTAL; 为表格提供面板的大小。我尝试使用 MigLayout 来完成此操作,最后一次尝试是使用上面提供的代码。我必须让表格适合面板并可滚动,但出了问题。另外,我很难获取显示的列标题,但主要问题是前两个问题。有什么建议吗?

最佳答案

您正尝试添加 table1 两次。只需这样做

panel2.add(sp1); // instead of - panel2.add(table1,sp1);

您已将 table1 添加到滚动 Pane

JScrollPane sp1 = new JScrollPane(table1);

关于java - 在 JPane 中安装 JTable 并垂直滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436584/

相关文章:

JAVA 文件编写器 : Get the path of created File using FileWriter

java - Eclipse 调试,更改 BigDecimal 上的变量值

java - 如何从 Kotlin 中的 java 类型数组获取 javaclass?

java - 为什么 JTable 不显示 DefaultTableModel 中存储的任何数据?

java - 获取jtable中勾选复选框的行值

java - JTable 不滚动到底行

java - 无法连接到 jdbc 驱动程序 mysql

java - 在哪里使用 Netbeans 本地化某些菜单项中的字符串?

java - 在 Java 中实现通用 switch 语句

java - Swing 并发和事件分发线程