简体   繁体   English

在JTable顶部添加按钮

[英]Add button on top of JTable

How to add a Back button on top of JTable ? 如何在JTable顶部添加后退button I tried but no luck. 我尝试过但没有运气。

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);

     } 

}

This is the output I get. 这是我得到的输出。

在此处输入图片说明

You're forgetting one line of code, the line that adds the topPanel to the panel JPanel: 您忘记了一行代码,该行将topPanel添加到面板JPanel中:

panel.add(topPanel, BorderLayout.PAGE_START);

Side note: for future questions, you will want to make your code compilable and runnable by us, meaning get rid of unnecessary dependencies, such as database. 旁注:对于将来的问题,您将需要使我们的代码可编译和运行,这意味着摆脱了不必要的依赖关系,例如数据库。 For your code above, the database stuff could be replaced by: 对于上面的代码,数据库内容可以替换为:

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

table = new JTable(data, column);

But actually since it is just a simple layout question, even the JTable is not necessary. 但是实际上,由于这只是一个简单的布局问题,因此甚至不需要JTable。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM