2

おはようございます。セルの内容に基づいて jtable 行の高さを変更する Multilinecellrenenderer があります。

    public Component getTableCellRendererComponent(JTable table, Object
        value, boolean isSelected, boolean hasFocus, int row, int column) {
    setText(value.toString());//or something in value, like value.getNote()...
    if (isSelected) {
        setForeground(table.getSelectionForeground());
        setBackground(table.getSelectionBackground());
    } else {
        setForeground(table.getForeground());
        setBackground(table.getBackground());
    }
    setSize(table.getColumnModel().getColumn(column).getWidth(),
            getPreferredSize().height);
    if (table.getRowHeight(row) <= getPreferredSize().height) {
            table.setRowHeight(row, getPreferredSize().height);
    }
    return this;
} 

レンダラー内で jtable を変更すると、無限ループで実行されることを理解しています。これは、ログ ステートメントを使用して確認したコードで発生しています。また、モデルのコンテンツを追加するときに行の高さを変更できることも理解しています。私が知っていることはすべて試しましたが、レレンダラーの外側で行の高さを設定することはできません。table.setRowHeight(int,int)セルレンダラーの外部で呼び出す方法を教えてください。

次のステートメントを使用して、モデルのコンテンツを動的に追加しています

   for(ProductRow object: data){
       model.addRow(new Object[]{object.getProductNumber(),object.getDescription(),
               object.getLastTouchedOn(),object.getLastTouchedBy()});
       }

現在の行番号と優先高さを取得する方法がわかりません。私を助けてください。ありがとう

4

1 に答える 1