2

JListがあり、そのリスト内で、次の単語のフォントの色を変更したいと思います。

CellRendererを使用する必要があると誰かが言ったが、私はまだそれをよく知らない。

さて、私の問題は、フォントの色を変更するためにこのレンダラーをどのように設定できるかということです。

この問題について何か考えはありますか?

ありがとう...

4

3 に答える 3

6

JavaDocを確認してください。必要なものだけが含まれている場合があります (上部の例)。基本的には、フォントの色が設定されたコンポーネント (JLabel など) を返すだけです。

編集:単語を定義とは異なる色にしたいので、リストセルレンダラーでそれを行う方法が2つあります:

  1. 2 つの JLabel を含む JPanel を返します。1 つは単語を含み、もう 1 つは定義を含みます。両方のラベルは異なる前景色を持つことができます。
  2. JLabel は (他の Swing コンポーネントと同様に) HTML をサポートしているため、ラベルのテキストを<html><font color=red>your word</font> - your definitions</html>. <font>デフォルトの前景色は定義の色にする必要があることに注意してください。代わりに、タグで定義をラップすることもできます。このチュートリアルをご覧ください。
于 2011-09-07T09:18:48.837 に答える
6

JLabelコンポーネントについては、次を試してください。

    new DefaultListCellRenderer(){
        @Override
        public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus ) { 
            JLabel label = (JLabel)super.getListCellRendererComponent( list, value, index, isSelected, cellHasFocus );
            label.setForeground( Color.RED );
            return label;
        }  
    };
于 2011-09-07T09:25:09.890 に答える
2

JListにはJTableとして多くの制限/欠落メソッドがあるため、ここで示しここで、 prepareRendererを使用して、1 つを使用しJTable、1 つを使用TableColumnせずTableHeaderに使用することをお勧めします。JList

于 2011-09-07T09:50:13.240 に答える