2

文字列を JTable セルに入れる方法と、画像を JTable セルに入れる方法を知っています。しかし、画像と文字列を同じ JTable セルに入れることは可能ですか?

この理由は、JTable に「ステータス」列があり、現時点では緑、琥珀色、または赤のイメージが含まれているためです。そして、デザイン要件を満たすために、各画像の横に説明テキストを追加する必要があります (したがって、緑色の画像の横のテキストは「オンライン」、琥珀色の画像の隣のテキストは「不明」、次のテキストは赤い画像への接続は「オフライン」になります)。2 つの列ではなく、1 つの列 (または 1 つの列のように見える/動作するもの) でこれを行う必要があります。

これについて調べてみましたが、まったく情報がありませんでした。

4

1 に答える 1

4

はい。

カスタム セル レンダラーを使用する必要があります。詳細については、テーブルの使用方法を確認してください。

実際には 2 つの選択肢があります。単純にセルのアイコンとテキストを設定するか、代わりにレンダラーのツールチップ テキストを使用することができます...

public class IconTextCellRemderer extend DefaultTableCellRenderer {
    public Component getTableCellRendererComponent(JTable table,
                                  Object value,
                                  boolean isSelected,
                                  boolean hasFocus,
                                  int row,
                                  int column) {
        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        setText(...);
        setIcon(...);
        setToolTipText(...);
        return this;
    }
}

もちろん、レンダラーを列に適用する必要があります...

TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(x).setCellRenderer(new IconTextCellRemderer());
于 2013-03-04T19:49:59.813 に答える