2016-05-10 11 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); 

    } 

} 

これは私が得る出力です。あなたは1行のコードを忘れている

enter image description here

答えて

2

、パネルのJPanelにtopPanelを追加しライン:

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:ようこそ –

関連する問題