jtable数字列居中

继承JTable,然后重载getCellRenderer方法
getCellRenderer(int   x,   int   y)
{
    TableCellRenderer   renderer   =   super.getCellRenderer();
    if   (renderer   instanceof   JLabel)
{
    ((JLabel)renderer).setHorizontalAlignment(JLabel.CENTER);
}
}

代码分析package view; import model.Book; import model.BookDAO; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import static model.BookDAO.updateBook; public class BookView extends JFrame { private BookDAO bookDAO; private JTable bookTable; private DefaultTableModel tableModel; public BookView() { bookDAO = new BookDAO(); initializeUI(); } private void initializeUI() { setTitle("图书管理系统"); setSize(800, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); // 创建按钮面板 JPanel buttonPanel = new JPanel(); JButton addButton = new JButton("添加书籍"); JButton viewButton = new JButton("查看所有书籍"); JButton updateButton = new JButton("更新书籍"); JButton deleteButton = new JButton("删除书籍"); addButton.setBackground(new Color(17, 248, 160)); viewButton.setBackground(new Color(17, 248, 160)); updateButton.setBackground(new Color(17, 248, 160)); deleteButton.setBackground(new Color(17, 248, 160)); buttonPanel.add(addButton); buttonPanel.add(viewButton); buttonPanel.add(updateButton); buttonPanel.add(deleteButton); buttonPanel.setLayout(new GridLayout(2, 2, 1, 10)); // 创建表格 bookTable = new JTable(); tableModel = new DefaultTableModel(new Object[]{"ID", "书名", "作者", "余量", "出版社"}, 0); bookTable.setModel(tableModel); bookTable.setRowHeight(40); bookTable.setBackground(Color.cyan); JScrollPane scrollPane = new JScrollPane(bookTable); // 添加组件到主面板 setLayout(new BorderLayout()); add(buttonPanel, BorderLayout.SOUTH); add(scrollPane, BorderLayout.CENTER); // 添加按钮事件监听器 addButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addBook(); } }); viewButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { viewAllBook(); } }); updateButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { updateBook(); } }); deleteButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { deleteBook(); } }); setVisible(true); } private void addBook() { JTextField idField = new JTextField(); JTextField nameField = new JTextField(); JTextField authorField = new JTextField(); JTextField numField = new JTextField(); JTextField pressField = new JTextField(); Object[] message = { "ID:", idField, "书名:", nameField, "作者:", authorField, "余量:", numField, "出版社:", pressField }; int option = JOptionPane.showConfirmDialog(this, message, "添加书籍", JOptionPane.OK_CANCEL_OPTION); if (option == JOptionPane.OK_OPTION) { int id = Integer.parseInt(idField.getText()); String name = nameField.getText(); String author = authorField.getText(); int num = Integer.parseInt(numField.getText()); String press = pressField.getText(); Book book = new Book(id, name, author, num, press); bookDAO.addBook(book); JOptionPane.showMessageDialog(this, "书籍已添加: " + book); viewAllBook(); // 更新表格数据 } } private void viewAllBook() { List<Book> books = bookDAO.getAllBook(); tableModel.setRowCount(0); // 清空表格 for (Book book : books) { tableModel.addRow(new Object[]{book.getBookId(), book.getBookName(), book.getBookAuthor(), book.getBookNum(), book.getBookPress()}); } } private void updateBook() { int selectedRow = bookTable.getSelectedRow(); if (selectedRow == -1) { JOptionPane.showMessageDialog(this, "请选择要更新的书籍。"); return; } int currentId = (int) tableModel.getValueAt(selectedRow, 0); JTextField idField = new JTextField(String.valueOf(currentId)); JTextField nameField = new JTextField((String) tableModel.getValueAt(selectedRow, 1)); JTextField authorField = new JTextField(String.valueOf(tableModel.getValueAt(selectedRow, 2))); JTextField numField = new JTextField(String.valueOf(tableModel.getValueAt(selectedRow, 3))); JTextField pressField = new JTextField(String.valueOf(tableModel.getValueAt(selectedRow, 4))); Object[] message = { "ID:", idField, "书名:", nameField, "作者:", authorField, "余量", numField, "出版社", pressField }; int option = JOptionPane.showConfirmDialog(this, message, "更新书籍", JOptionPane.OK_CANCEL_OPTION); if (option == JOptionPane.OK_OPTION) { int id = Integer.parseInt(idField.getText()); String name = nameField.getText(); String author = nameField.getText(); int num = Integer.parseInt(idField.getText()); String press = nameField.getText(); Book book = bookDAO.getBookById(currentId); if (book != null) { book.setBookId(id); book.setBookName(name); book.setBookAuthor(author); book.setBookNum(num); book.setBookPress(press); bookDAO.updateBook(book); JOptionPane.showMessageDialog(this, "书籍信息已更新: " + book); viewAllBook(); // 更新表格数据 } else { JOptionPane.showMessageDialog(this, "书籍ID不存在。"); } } } private void deleteBook() { int selectedRow = bookTable.getSelectedRow(); if (selectedRow == -1) { JOptionPane.showMessageDialog(this, "请选择要删除的书籍。"); return; } int id = (int) tableModel.getValueAt(selectedRow, 0); bookDAO.deleteBook(id); JOptionPane.showMessageDialog(this, "书籍已删除,ID: " + id); viewAllBook(); // 更新表格数据 } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new BookView(); } }); } }
最新发布
07-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值