Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 JTable 내부의 셀 편집을 비활성화하려면 어떻게 해야 합니까?


JTable JComponent 의 하위 클래스입니다. 복잡한 데이터 구조를 표시합니다. JTable은 MVC(Model View Controller) 디자인 패턴을 따를 수 있습니다. 행과 열에 데이터를 표시합니다. JTable은 TableModelListener를 실행할 수 있습니다. , TableColumnModelListener , ListSelectionListener , CellEditorListener RowSorterListener 인터페이스. 기본적으로 텍스트를 편집하고 JTable 셀 내에서 수정할 수 있습니다. 셀 수정을 비활성화할 수도 있습니다. editCellAt() 를 호출하여 테이블 내부에서 JTable 클래스의 메소드이며 false를 반환해야 합니다. .

예시

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public final class DisableJTableMouseClickTest extends JFrame {
   private JTable table;
   private JScrollPane scrollPane;
   public DisableJTableMouseClickTest() {
      setTitle("DisableJTableMouseClick Test");
      String[] columnNames = {"Country", "Rank"};
      Object[][] data = {{"England", "1"}, {"India", "2"}, {"New Zealand", "3"}, {"Australia", "4"},       {"South Africa","5"}, {"Pakistan","6"}};
      table = new JTable(data, columnNames) {
         public boolean editCellAt(int row, int column, java.util.EventObject e) {
            return false;
         }
      };
      table.setRowSelectionAllowed(false);
      scrollPane= new JScrollPane(table);
      add(scrollPane);
      setSize(400, 275);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new DisableJTableMouseClickTest();
   }
}

출력

Java에서 JTable 내부의 셀 편집을 비활성화하려면 어떻게 해야 합니까?