2016-05-10 192 views
1

如何在JTable頂部添加返回button?我試過但沒有運氣。在JTable頂部添加按鈕

public class viewMovie extends JPanel{ 

    static JFrame frame = new JFrame("View Movie"); 
    JTable table; 

    public static void main(String[] args) { 
      SwingUtilities.invokeLater(() -> { 
       try { 
        createAndShowGui(); 
       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      }); 
     } 

    static void createAndShowGui() throws Exception { 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.getContentPane().add(new viewMovie()); 
      frame.pack(); 
      frame.setLocationRelativeTo(null); 
      frame.setVisible(true); 
     } 

    public viewMovie() throws Exception 
    { 
     String sql="Select * from movie"; 
      DatabaseConnection db = new DatabaseConnection(); 
      Connection conn =db.getConnection(); 
      PreparedStatement ps = conn.prepareStatement(sql); 
      ResultSet rs = ps.executeQuery(); 
      ResultSetMetaData rsmt= rs.getMetaData(); 
      int c= rsmt.getColumnCount(); 
      Vector column= new Vector(c); 
      for(int i=1;i<=c;i++) 
      { 
       column.add(rsmt.getColumnName(i)); 
      } 
      Vector data = new Vector(); 
      Vector row=new Vector(); 
      while(rs.next()) 
      { 
       row=new Vector(c); 
       for(int i=1;i<=c;i++) 
       { 
        row.add(rs.getString(i)); 
       } 
       data.add(row); 
      } 

      JButton back= new JButton("Back"); 
      JPanel topPanel = new JPanel(new GridLayout(1, 0, 3, 3)); 
        topPanel.add(back); 

       JPanel panel= new JPanel(); 
       table=new JTable(data,column); 
      JScrollPane jsp = new JScrollPane(table); 
       panel.setLayout(new BorderLayout()); 
       panel.add(jsp,BorderLayout.CENTER); 
       frame.setContentPane(panel); 
       frame.setVisible(true); 

    } 

} 

這是我得到的輸出。

enter image description here

回答

2

你忘了一行代碼,即增加了topPanel到面板的JPanel行:

panel.add(topPanel, BorderLayout.PAGE_START); 

邊注:對於未來的問題,你會想使您的代碼可編譯並可由我們運行,這意味着擺脫不必要的依賴關係,如數據庫。對於上面的代碼中,數據庫的東西可以被替代:

JPanel panel = new JPanel(); 
Integer[][] data = { { 1, 2, 3 }, { 4, 5, 6 } }; 
String[] column = { "A", "B", "C" }; 

table = new JTable(data, column); 

但實際上,因爲它只是一個簡單的佈局問題,甚至JTable中是沒有必要的。

+1

@AI:不客氣 –