কম্পিউটার টিউটোরিয়াল

জাভাতে JTable ফিল্টার করুন


JTable টেবিল তৈরি এবং প্রদর্শন করার জন্য খুব ফ্লেক্সিবল পসিবিলিটি দেয়। TableModel ইন্টারফেস টেবিলের কন্টেন্ট স্পেসিফাই করা অবজেক্টের জন্য মেথড ডিফাইন করে। AbstractTableModel ক্লাস সাধারণত এক্সটেন্ড করা হয় কাস্টম টেবিল মডেল ইমপ্লিমেন্টেশনের জন্য। JTable ক্লাস setCellEditor() মেথড দিয়ে টেবিল এডিট করার ক্ষমতা দেয় যা TableCellEditor ইন্টারফেসের একটি অবজেক্ট অনুমতি দেয়।

আমরা TableRowSorter ক্লাসের setRowFilter() মেথড ব্যবহার করে একটি টেবিল ফিল্টার করতে পারি।

উদাহরণ

import java.awt.*; import java.awt.event.*; import java.util.regex.*; import javax.swing.*; import javax.swing.table.*; public class FilterTableTest extends JFrame {    private JTable table;    private TableModel model;    public FilterTableTest() {       setTitle("FilterTable Test");       Object rows[][] = {{"Adithya", "Content Developer", 25000}, {"Jai", "SME", 30000},  {"Chaitanya", "Java Engineer", 45000}, {"Ramesh", "Scala Developer", 40000}, {"Ravi", "SAP  Consultant", 70000}};       Object columns[] = {"Name", "Designation", "Salary"};       model = new DefaultTableModel(rows, columns) {          public Class getColumnClass(int column) {             Class returnValue;             if((column >= 0) && (column < getColumnCount())) {                returnValue = getValueAt(0, column).getClass();             } else {                returnValue = Object.class;             }             return returnValue;          }       };       table = new JTable(model);       final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);       table.setRowSorter(sorter);       add(new JScrollPane(table), BorderLayout.CENTER);       JPanel panel = new JPanel(new BorderLayout());       JLabel label = new JLabel("Filter");       panel.add(label, BorderLayout.WEST);       final JTextField filterText = new JTextField("");       panel.add(filterText, BorderLayout.CENTER);       add(panel, BorderLayout.NORTH);       JButton button = new JButton("Filter");       button.addActionListener(new ActionListener() {          public void actionPerformed(ActionEvent e) {             String text = filterText.getText();             if(text.length() == 0) {                sorter.setRowFilter(null);             } else {                try {                   sorter.setRowFilter(RowFilter.regexFilter(text));                } catch(PatternSyntaxException pse) {                      System.out.println("Bad regex pattern");                }              }          }       });       add(button, BorderLayout.SOUTH);       setSize(400, 300);       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       setLocationRelativeTo(null);       setVisible(true);    }    public static void main(String args[]) {       new FilterTableTest();    } }

আউটপুট

জাভাতে JTable ফিল্টার করুন


জাভাতে JTable ফিল্টার করুন


  1. জাভাতে JTable-এ টেবিল হেডার শো/হাইড করা

  2. জাভাতে JTable সেলের ভিতরে JCheckBox কীভাবে যোগ/ইনসার্ট করবেন?

  3. জাভাতে এডিটেবল JLabel কীভাবে বাস্তবায়ন করবেন?

  4. জাভাতে JToggleButton কীভাবে বাস্তবায়ন করবেন?