簡體   English   中英

如何獲取JTable中顯示的單元格值(不是完整的TableModel值)?

[英]How can i get the displayed cell value in a JTable (not full TableModel value)?

通常,我使用以下方法在JTable獲取表單元格的值:

table.getModel().getValueAt(rowIndex, columnIndex)

但是,現在我有了給定的輸入JTable (我無法控制或創建),並且需要獲取顯示的單元格值作為String 如果值為Double ,則它的位數可以超過JTable所顯示的位數。

示例: JTable顯示0.37(兩位數字)-但是getValueAt返回0.37234421

我正在尋找的是要么以String形式獲取顯示的值 ,要么是顯示的位數(因此我可以從getValueAt相應地更改double()。

蠻力法是

Object value = jtable.getValueAt(row, column);
Component component = jtable.getCellRenderer(row, column).getTableCellRendererComponent(jtable, value, isSelected, hasFocus, row, column);
if (component instanceof JLabel) {
    String displayedValue = ((JLabel) component).getText(); // here you are
}

注意 ,可以通過調用例如jtable.setDefaultRenderer(columnClass, renderer)來替換JTableCellRenderer 然后,根據實現的不同,生成的Component可能不再是JLabel 在后一種情況下,需要不同的邏輯來檢索顯示的值(即,將component為不同的Class並從該實例中檢索它)。 但是 ,默認情況下,由JTable使用的DefaultTableCellRenderer實現返回JLabel

但是 ,您看到的值也可能與此不同....如果表中的列在表中不夠寬,則文本23.4567可能是文本,但實際顯示的文本是23.4... ...如果您想知道實際顯示的價值,需要使用其他方法...

暫無
暫無

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

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