Java 表格标题未显示在表格顶部

Java 表格标题未显示在表格顶部,java,swing,jtable,jscrollpane,jtableheader,Java,Swing,Jtable,Jscrollpane,Jtableheader,我正在制作一个JTable,我有两个问题#1表格标题显示在表格的侧面,2滚动窗格未显示。这是我现在的一些代码 String [] data = {"a", "b", "c", "d", "e"}; JFrame frame = new JFrame("String Table"); JPanel middlePanel = new JPanel(); DefaultTableModel model = new DefaultTableModel(); model.ad

我正在制作一个JTable,我有两个问题#1表格标题显示在表格的侧面,2滚动窗格未显示。这是我现在的一些代码

String [] data = {"a", "b", "c", "d", "e"};
JFrame frame = new JFrame("String Table");
JPanel middlePanel = new JPanel();              
DefaultTableModel model = new DefaultTableModel();
model.addColumn("String", data);
JTable table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);    


frame.getContentPane().add(middlePanel, BorderLayout.CENTER);
middlePanel.add(scrollPane);
middlePanel.add(table.getTableHeader());
middlePanel.add(table);


frame.setSize(400, 200);
frame.setVisible(true);
  • 只使用代码行
    middlePanel.add(滚动窗格)

  • JPanel(中间面板)
    应按
    GridLayout
    BorderLayout

  • 删除代码行
    middlePanel.add(table.getTableHeader())
    middlePanel.add(表)

  • 移动代码行
    frame.getContentPane().add(middlePanel,BorderLayout.CENTER)
    middlePanel.add之后(滚动窗格),可以是
    frame.add(中间面板)JFrame

  • 移除
    frame.setSize(400200)替换为
    frame.pack()
    并通过覆盖
    JScrollPane的
    getPreferredSize
    来确定合适的
    PreferredSize


  • 我遇到了另一个问题。我的表显示得非常小,第一列中的元素非常长,因此我需要扩展表和列1更多的想法,以便查看和编辑