jtable顶部的add按钮

llycmphe  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(366)

如何添加背面 button 在…之上 JTable ? 我试过了,但没有成功。

  1. public class viewMovie extends JPanel{
  2. static JFrame frame = new JFrame("View Movie");
  3. JTable table;
  4. public static void main(String[] args) {
  5. SwingUtilities.invokeLater(() -> {
  6. try {
  7. createAndShowGui();
  8. } catch (Exception e) {
  9. // TODO Auto-generated catch block
  10. e.printStackTrace();
  11. }
  12. });
  13. }
  14. static void createAndShowGui() throws Exception {
  15. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16. frame.getContentPane().add(new viewMovie());
  17. frame.pack();
  18. frame.setLocationRelativeTo(null);
  19. frame.setVisible(true);
  20. }
  21. public viewMovie() throws Exception
  22. {
  23. String sql="Select * from movie";
  24. DatabaseConnection db = new DatabaseConnection();
  25. Connection conn =db.getConnection();
  26. PreparedStatement ps = conn.prepareStatement(sql);
  27. ResultSet rs = ps.executeQuery();
  28. ResultSetMetaData rsmt= rs.getMetaData();
  29. int c= rsmt.getColumnCount();
  30. Vector column= new Vector(c);
  31. for(int i=1;i<=c;i++)
  32. {
  33. column.add(rsmt.getColumnName(i));
  34. }
  35. Vector data = new Vector();
  36. Vector row=new Vector();
  37. while(rs.next())
  38. {
  39. row=new Vector(c);
  40. for(int i=1;i<=c;i++)
  41. {
  42. row.add(rs.getString(i));
  43. }
  44. data.add(row);
  45. }
  46. JButton back= new JButton("Back");
  47. JPanel topPanel = new JPanel(new GridLayout(1, 0, 3, 3));
  48. topPanel.add(back);
  49. JPanel panel= new JPanel();
  50. table=new JTable(data,column);
  51. JScrollPane jsp = new JScrollPane(table);
  52. panel.setLayout(new BorderLayout());
  53. panel.add(jsp,BorderLayout.CENTER);
  54. frame.setContentPane(panel);
  55. frame.setVisible(true);
  56. }
  57. }

这是我得到的结果。

trnvg8h3

trnvg8h31#

您忘记了一行代码,这行代码将toppanel添加到panel jpanel:

  1. panel.add(topPanel, BorderLayout.PAGE_START);

旁注:对于将来的问题,您将希望我们能够编译并运行您的代码,这意味着要消除不必要的依赖关系,例如数据库。对于上面的代码,数据库内容可以替换为:

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

但实际上,由于它只是一个简单的布局问题,所以即使是jtable也不是必需的。

相关问题