Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJTableの検索機能を実装するにはどうすればよいですか?


JTable 複雑なデータ構造を表示するためのJComponentのサブクラスです。 JTableコンポーネントは、 Model View Controller(MVC)デザインパターンに従うことができます 行と列にデータを表示するため 。 JTableは、 TableModelListener、TableColumnModelListener、ListSelectionListener、CellEditorListener、RowSorterListenerを生成できます。 インターフェイス。 JTextField に文字列を入力することで、JTableの検索機能を実装できます。 、JTableで使用可能な文字列を検索できます。文字列が一致する場合は、対応する値のみをJTableに表示できます。 DocumentListenerを使用できます それを実装するためのJTextFieldのインターフェース。

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class JTableSearchTest extends JFrame {
   private JTextField jtf;
   private JLabel searchLbl;
   private TableModel model;
   private JTable table;
   private TableRowSorter sorter;
   private JScrollPane jsp;
   public JTableSearchTest() {
      setTitle("JTableSearch Test");
      jtf = new JTextField(15);
      searchLbl = new JLabel("Search");
      String[] columnNames = {"Name", "Technology"};
      Object[][] rowData = {{"Raja", "Java"},{"Vineet", "Java Script"},{"Archana", "Python"},{"Krishna", "Scala"},{"Adithya", "AWS"},{"Jai", ".Net"}};
      model = new DefaultTableModel(rowData, columnNames);
      sorter = new TableRowSorter<>(model);
      table = new JTable(model);
      table.setRowSorter(sorter);
      setLayout(new FlowLayout(FlowLayout.CENTER));
      jsp = new JScrollPane(table);
      add(searchLbl);
      add(jtf);
      add(jsp);
      jtf.getDocument().addDocumentListener(new DocumentListener() {
         @Override
         public void insertUpdate(DocumentEvent e) {
            search(jtf.getText());
         }
         @Override
         public void removeUpdate(DocumentEvent e) {
            search(jtf.getText());
         }
         @Override
         public void changedUpdate(DocumentEvent e) {
            search(jtf.getText());
         }
         public void search(String str) {
            if (str.length() == 0) {
               sorter.setRowFilter(null);
            } else {
               sorter.setRowFilter(RowFilter.regexFilter(str));
            }
         }
      });
      setSize(475, 300);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setResizable(false);
      setVisible(true);
   }
   public static void main(String[] args) {
      new JTableSearchTest();
   }
}

出力

JavaでJTableの検索機能を実装するにはどうすればよいですか?


JavaでJTableの検索機能を実装するにはどうすればよいですか?


  1. JavaでJPanelのpaintComponent()メソッドを実装するにはどうすればよいですか?

    JPanel は軽量のコンテナであり、見えない コンポーネント Javaで。 JPanelのデフォルトのレイアウトはFlowLayout 。 JPanelを作成したら、他のコンポーネントを JPanelに追加できます。 add()を呼び出してオブジェクトを作成します コンテナから継承されたメソッド クラス。 paintComponent() このメソッドは、 JPanelで何かを描画するために必要です 背景色を描く以外。このメソッドは、 JPanelにすでに存在します スーパーを使用する必要があるようにクラス このメソッドに何かを追加し、グラフィックスを取る宣言 オブジェクト パラメータ

  2. JavaでJToggleButtonを実装するにはどうすればよいですか?

    JToggleButton JToggleButton AbstractButtonの拡張です また、オンに切り替えることができるボタンを表すために使用できます。 およびオフ 。 JToggleButtonの場合 を初めて押すと、押したままになり、2回押すと離すことができます。 JToggleButton ActionEventを生成します 押すたびに。 JToggleButton ItemEventを生成することもできます 、このイベントは、選択の概念をサポートするコンポーネントによって使用されます。 JToggleButtonの場合 を押すと選択されます。