gpt4 book ai didi

java - 将 Jtable 添加到 jframe 中

转载 作者:行者123 更新时间:2023-11-30 07:17:18 26 4
gpt4 key购买 nike

我正在尝试将 JTable 添加到框架中,但没有效果,我尝试过:

public Jtablee()
{
setSize(400,400);

String[] columnsNames = {"firstName", "LastName", "sport", "# ofYear", "vegetarian"};

Object[][] data = {{"Katty", "Smith", "SnowBoard", new Integer(5), new Boolean(false)}, {"Jhon", "Doe", "Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black", "Knitting", new Integer(2), new Boolean(false)},{"Jane", "White", "Speed ride", new Integer(20), new Boolean(true)}};

JTable t = new JTable(data, columnsNames);
add(t.getTableHeader(), BorderLayout.PAGE_START);
add(t, BorderLayout.CENTER);

setLayout(new BorderLayout());
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

只出现空白框,没有JTable

注意:我不想将其添加到scrollPane中,我想直接添加它。

最佳答案

您不需要调用 setLayout(new BorderLayout()),因为内容 Pane Container 已经具有该布局。添加组件之后调用它将使它们消失。

您也不需要在 JFrame 上调用 setSize()。相反,您应该调用 pack() ,它会自动调整其大小以适合其内容(表格)

最后,您不应该在此处使用 new Integer()new Boolean(),因为这是不必要的装箱,而是使用基元。

所以你的代码应该是这样的:

import javax.swing.*;
import java.awt.*;

public class Test extends JFrame {

public Test() {

String[] columnsNames = {"firstName", "LastName", "sport", "# ofYear", "vegetarian"};

Object[][] data = {
{"Katty", "Smith", "SnowBoard", 5, false},
{"Jhon", "Doe", "Rowing", 3, true},
{"Sue", "Black", "Knitting", 2, false},
{"Jane", "White", "Speed ride", 20, true}
};

JTable table = new JTable(data, columnsNames);
add(table.getTableHeader(), BorderLayout.PAGE_START);
add(table, BorderLayout.CENTER);

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}

public static void main(String[] args) {
new Test();
}
}

关于java - 将 Jtable 添加到 jframe 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38150025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com