所以我试图做一个框架,在您单击按钮后,它显示数据库中每个项目的列表,但是实际上,当我单击它时,什么也没有显示。

public ArrayList show(JTextArea tData) {
        ArrayList<Book> books=new ArrayList<>();
        try{
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            polaczenie =DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=master",
                    "sa", "student");
            try(Statement stmt = connection.createStatement();) {
                ResultSet rs = stmt.executeQuery("{call dbo.showBook}");
                while (rs.next()) {
                        books.add(new Book(
                           rs.getString("bookNumber"),
                           rs.getString("title"),
                           rs.getString("author"),
                           rs.getString("publicationYear"),
                           rs.getString("publisher"))
                    );
                }
            }
        }
        catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null, "Error "+ex.getMessage(), "Error", 0);
        }
        catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Error "+ex.getMessage(), "Error", 0);
        }
        return books;
    }


private void bShowActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        DataBook db=new DataBook();
        db.show(tData);
    }

最佳答案

您的show方法将返回ArrayList<Book>

所以:


您是否已处理此数据以显示列表中的数据?
您的数据库有数据了吗?


“很抱歉,我的声誉希望对您有帮助。

package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class App extends JFrame {
    JPanel contentPane;
    JButton action;
    JList<Book> listBooks;

    public App() {
        this.prepareGUI();
    }

    public void prepareGUI() {
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(200,  200);

        contentPane = new JPanel();
        this.setContentPane(contentPane);

        action = new JButton("Action");
        contentPane.add(action);

        listBooks = new JList<Book>();
        contentPane.add(listBooks);

        action.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // Data
                Book[] books = new Book[5];
                for (int i = 0; i < books.length; i++) {
                    books[i] = new Book("book " + i, "@@");
                }

                listBooks.setListData(books);

            }
        });
    }

    public static void main(String[] args) {
        App app = new App();

        app.setVisible(true);
    }

}


希望对您有帮助!!!

09-11 19:28
查看更多