কম্পিউটার

কিভাবে আমরা জাভাতে একটি JTable ফিল্টার করতে পারি?


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

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

উদাহরণ

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 বাস্তবায়ন করতে পারি?