簡體   English   中英

創建顯示在jframe中的不可編輯的jtable

[英]creating an uneditable jtable displayed in jframe

我今天遇到了jtables,這是一種代表從數據庫中檢索到的信息的好方法,例如,如以下代碼所示:

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class JTableCreatingDemo {
  public static void main(String args[]) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Object rowData[][] = { { "Row1-Column1", "Row1-Column2", "Row1-Column3" },
        { "Row2-Column1", "Row2-Column2", "Row2-Column3" } };
    Object columnNames[] = { "Column One", "Column Two", "Column Three" };
    JTable table = new JTable(rowData, columnNames);

    JScrollPane scrollPane = new JScrollPane(table);
    frame.add(scrollPane, BorderLayout.CENTER);
    frame.setSize(300, 150);
    frame.setVisible(true);

  }
}

我唯一不喜歡的是,如果我單擊表條目,則可以更改它們。 我不喜歡這樣。 我想知道是否有辦法可以防止這種情況的發生?

您可以使用AbstractTableModel ,但是可能要比准備的工作多,而要使用DefaultTableModel並覆蓋其isCellEditable方法以返回false

例如...

DefaultTableModel model = new DefaultTableModel(rowData, columnNames) {
    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
};
JTable table = new JTable(model);

有關更多詳細信息,請參見如何使用表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM