Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để xác thực nếu JTable có một ô trống trong Java?


A JTable là một lớp con của JComponent lớp để hiển thị cấu trúc dữ liệu phức tạp. JTable có thể tuân theo Bộ điều khiển chế độ xem mô hình (MVC) mẫu thiết kế để hiển thị dữ liệu trong hàng và cột . A JTable sẽ tạo TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener RowSorterListener giao diện.

Chúng tôi có thể xác thực xem ô JTable có trống hay không bằng cách triển khai getValueAt () phương pháp của JTable lớp. Nếu chúng tôi nhấp vào nút " Nhấp vào đây ", nó sẽ tạo một sự kiện hành động và hiển thị thông báo bật lên như" Trường trống "cho người dùng.

Ví dụ

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class JTableEmptyValidateTest extends JFrame {
   private JPanel panel;
   private JTable table;
   private JButton button;
   String[] columnNames = new String[] {"Student 1", "Student 2"};
   String[][] dataValues = new String[][] {{"95", "100"}, {"", "85"}, {"80", "100"}};
   public JTableEmptyValidateTest() {
      setTitle("Empty Validation Table");
      panel = new JPanel();
      table = new JTable();
      TableModel model = new myTableModel();
      table.setModel(model);
      panel.add(new JScrollPane(table));
      button = new JButton("Click Here");
      button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent event) {
            if(validCheck()) {
               JOptionPane.showMessageDialog(null,"Field is filled up");
            } else {
               JOptionPane.showMessageDialog(null, "Field is empty");
            }
         }
      });
      add(panel, BorderLayout.CENTER);
      add(button, BorderLayout.SOUTH);
      setSize(470, 300);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public boolean validCheck() {
      if(table.getCellEditor()!= null) {
         table.getCellEditor().stopCellEditing();
      }
      for(int i=0; i < table.getRowCount(); i++) {
         for(int j=0; j < table.getColumnCount(); j++) {
            String value = table.getValueAt(i,j).toString();
            if(value.trim().length() == 0) {
               return false;
            }
         }
      }
      return true;
   }
   class myTableModel extends DefaultTableModel {
      myTableModel() {
         super(dataValues, columnNames);
      }
      public boolean isCellEditable(int row, int cols) {
         return true;
      }
   }
   public static void main(String args[]) {
      new JTableEmptyValidateTest();
   }
}

Đầu ra

Làm thế nào để xác thực nếu JTable có một ô trống trong Java?