Java 单击按钮将JTable和JscrollPane添加到JPanel

Java 单击按钮将JTable和JscrollPane添加到JPanel,java,swing,jtable,jscrollpane,Java,Swing,Jtable,Jscrollpane,我现在做的是: 单击搜索航班时,数据来自数据库并显示在另一个JFrame上,如下所示: 我希望这些数据显示在搜索面板的正下方,而不是打开新的框架。类似这样的内容: 我的代码如下: listingFlight.java public class listingFlight extends javax.swing.JPanel implements TableCellRenderer { public listingFlight() { initComponents()

我现在做的是:

单击搜索航班时,数据来自数据库并显示在另一个
JFrame
上,如下所示:

我希望这些数据显示在搜索面板的正下方,而不是打开新的框架。类似这样的内容:

我的代码如下:

listingFlight.java

public class listingFlight extends javax.swing.JPanel implements TableCellRenderer {
    public listingFlight() {
        initComponents();
    }
    @SuppressWarnings("unchecked")
    //Netbeans autogenerated componnent code
    @Override
    public Component getTableCellRendererComponent(JTable jTable, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        this.jLabel3.setText(jTable.getModel().getValueAt(row, column).toString()+" ("+jTable.getModel().getValueAt(row, column+1).toString()+")");
        this.jLabel4.setText(jTable.getModel().getValueAt(row, column+2).toString()+" ("+jTable.getModel().getValueAt(row, column+3).toString()+")");
        this.jLabel6.setText(jTable.getModel().getValueAt(row, column+9).toString());

        this.jLabel8.setText(jTable.getModel().getValueAt(row, column+6).toString());
        this.jLabel11.setText(jTable.getModel().getValueAt(row, column+8).toString());
        this.jLabel12.setText(jTable.getModel().getValueAt(row, column+7).toString());
        this.jLabel15.setText(jTable.getModel().getValueAt(row, column+4).toString());
        this.jLabel16.setText(jTable.getModel().getValueAt(row, column+5).toString());

        return this;

    }

}
(单击“搜索航班”按钮,我将执行此操作。)

目前,
showFrame()
是:

  private void showFrame(JTable table) {
        JFrame f = new JFrame("Search Result");
        f.setSize(800, 700);
        f.add(new JScrollPane(table));
        f.setVisible(true);

    }
但是我试图将
jScrollPane
添加到现有的
JPanel
中,而不是创建新的
JFrame
并向其中显示数据

  private void showFrame(JTable table) {


        this.jPanel1.add(new JScrollPane(table));

    }

此showFrame没有将JScrollPane添加到我现有的jPanel1。

添加滚动窗格后,在
jPanel1上调用
revalidate()
repaint()
。(还要确保面板的布局正确)@LuxxMiner u的意思是:
this.jPanel1.add(newjscrollpane(table));this.jPanel1.revalidate();this.jPanel1.repaint()它不起作用顺便说一句,你的
TableCellRenderer
是错误的,它应该只渲染单个单元格值一般来说,你的
JTable
应该已经添加到容器中,然后你所要做的就是更新
TableModel
。我猜您正在使用
null
布局(或使用某种形式的表单编辑器来设计初始布局)@MadProgrammer我应该使用
TableCellEditor
  private void showFrame(JTable table) {


        this.jPanel1.add(new JScrollPane(table));

    }