我开始使用IntelliJ IDEA(IDE),我在做一个 Swing 项目。目前我做了一个ArrayList
来模拟数据库,看看是否一切正常。我试着像在NetBeans中那样将ArrayList
连接到JTable
,但是数据没有得到反映。我不知道是否有人能给予我一种方法来注入ArrayList
。求你了
由于JTable
的特性,我使用IntelliJ编辑器本身创建了它,也就是说,我没有使用任何代码。
我试着像在NetBeans中那样去做,但是没有用。我试着用教程来做,但是也没有用。
这就是ArrayList
:
public class DatabaseLibros {
public static ArrayList<Book> books = new ArrayList<>();
void cargarLibrosDB() {
Book book;
// Libro 1
book = new Book("El señor de los anillos", "J.R.R. Tolkien", "Fantasía", "978-84-450-7570-9");
books.add(book);
// Libro 2
book = new Book("Cien años de soledad", "Gabriel García Márquez", "Realismo mágico", "978-84-376-0374-7");
books.add(book);
// Libro 3
book = new Book("1984", "George Orwell", "Distopía", "978-84-670-5189-7");
books.add(book);
}
// Método para obtener todos los libros de la base de datos
public static ArrayList<Book> obtenerLibros() {
return books;
}
// Método para agregar un nuevo libro a la base de datos
public static void agregarLibro(Book nuevoBook) {
books.add(nuevoBook);
}
}
字符串
下面是JFrame
窗口的逻辑:
public class PantallaPrincipal extends JFrame {
private JPanel panel;
private JTextField textField1;
private JButton button1;
private JTable jTable;
private JButton salirButton;
private JLabel txtLeft;
public PantallaPrincipal() {
DefaultTableModel tableModel = new DefaultTableModel(30, 0);
jTable.setModel(tableModel);
tableModel.addColumn("Título");
tableModel.addColumn("Autor");
tableModel.addColumn("Género");
tableModel.addColumn("ISBN");
// Configurar el contenido del JFrame
add(panel);
setSize(1280, 720);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
salirButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
Container principal = new Container();
principal.setVisible(true);
}
});
}
}
型
1条答案
按热度按时间fzwojiic1#
我建议您从阅读How to Use Tables开始,您还可以从理解Dependency Injection和observer pattern等概念中受益
就我个人而言,我会从创建一个自定义的
TableModel
开始,它将接受数据源的一个示例(DatabaseLibros
的一个示例)。为此,我会创建一个从AbstractTableModel
扩展的类,这样你就可以轻松地配置和重用模型。例如...
字符串
作为一个旁注,我会小心使用
static
的方式,它很容易回来困扰你。