JCombobox内の行/エントリのフォント色を、各行に一意に設定したい。だから基本的にドロップダウンの矢印をクリックすると、色が異なるいくつかの行が表示され、そのプロパティに基づいて色を指定する必要があります。これを行うにはどうしたらいいですか?ありがとう!JComboboxの行に一意のフォント色を付けるにはどうすればいいですか?
1
A
答えて
1
あなたはおそらく、ここにSunのチュートリアルをチェックアウトし、あなたのJComboBoxのためのカスタムレンダラを提供する必要があります:
http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html#renderer
を(リンクの不足のため申し訳ありませんが、リンクを投稿し、まだ私ので、することはできません
class Renderer extends JLabel implements ListCellRenderer {
と、このメソッドを実装します:「あなたのようなカスタムListCellRendererを作成する必要が
2
)新しいメンバーをm個
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
// Get the selected index. (The index param isn't
// always valid, so just use the value.)
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
// Display the text
String text = (String) value;
setText(text);
// Get the source
次に、ソースに応じて、this.setForeground(色の色)を使用してテキストの色を設定します。最後に、
return this;
}
1
あなたはListCellRenderer
を使用することができます。このためにカスタムクラスを作成する必要があります。ここでは、重複を避けるために、インデックスに基づいてフォアグラウンドを設定する完全なコードを示します。このためにカスタム選択の背景と背景を設定することもできます。コード内のコメントを参照してください。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
class ListCellRendererDemo2 extends JFrame
{
Hashtable<Integer,Color> table;
JComboBox<String> c;
public ListCellRendererDemo2()
{
createAndShowGUI();
}
private void createAndShowGUI()
{
setTitle("JComboBox Demo");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
table=new Hashtable<Integer,Color>();
table.put(1,Color.RED);
table.put(2,Color.BLUE);
table.put(3,Color.GREEN);
table.put(4,Color.GRAY);
c=new JComboBox<String>();
c.addItem("Item 1");
c.addItem("Item 2");
c.addItem("Item 3");
c.addItem("Item 4");
c.addItem("Item 5");
c.addItem("Item 6");
c.addItem("Item 7");
c.addItem("Item 8");
c.setRenderer(new MyListCellRenderer(table));
add(c);
setSize(400,400);
setVisible(true);
}
public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable(){
public void run()
{
new ListCellRendererDemo2();
}
});
}
}
class MyListCellRenderer extends DefaultListCellRenderer
{
Hashtable<Integer,Color> table;
public MyListCellRenderer(Hashtable<Integer,Color> table)
{
this.table=table;
// Set opaque for the background to be visible
setOpaque(true);
}
public Component getListCellRendererComponent(JList jc,Object val,int idx,boolean isSelected,boolean cellHasFocus)
{
// Set text (mandatory)
setText(val.toString());
// Set the foreground according to the selected index
setForeground(table.get(idx));
// Set your custom selection background, background
// Or you can get them as parameters as you got the table
if(isSelected) setBackground(Color.LIGHT_GRAY);
else setBackground(Color.WHITE);
return this;
}
}
関連する問題
- 1. jQueryカレンダーで特定の日付のフォント色を変更するにはどうすればいいですか?
- 2. 各カテゴリに色を付けるにはどうすればよいですか?
- 3. githubのフレーバー付きマークダウンでテキストに色を付けるにはどうすればいいですか?
- 4. TableViewの行を色付けするにはどうすればいいですか?
- 5. 特定の地域でフォントとフォントの色を調整するにはどうすればよいですか?
- 6. より良い色付け機能を実行するにはどうすればよいですか?
- 7. このグラフの特定の部分に色を付けるにはどうすればいいですか?
- 8. mysqlフィールドを一意にするにはどうすればいいですか?
- 9. オブジェクトプロパティを一意にするにはどうすればいいですか?
- 10. プレゼンテーションテーマから実行/ txbody /段落のフォント色を取得するにはどうすればよいですか?
- 11. HTMLTableの特定のセルに色を付けるにはどうすればいいですか?
- 12. GreasemonkeyでREDの文字列に色を付けるにはどうすればいいですか?
- 13. Seaborn Jointplotで個々のマーカーに色を付けるにはどうすればいいですか?
- 14. アメリカの地図で海の青を色付けするにはどうすればいいですか?
- 15. Emacsで特定のものを色付けするにはどうすればいいですか?
- 16. Qt Creatorのテキストエディタでメソッドと関数の色を付けるにはどうすればいいですか?
- 17. 関数の結果からbash PS1プロンプトを色付けするにはどうすればいいですか?
- 18. MapBoxで速度/高度でポリライン/ GeoJSONラインの色を付けるにはどうすればいいですか?
- 19. wxPython:チェックボックスでtextctrlのフォントの色を変更するにはどうすればいいですか?
- 20. emacsで私のFortranコードのフォント色を変更するにはどうすればいいですか?
- 21. ドロップダウンで単語の色を付けるにはどうすればいいですか?
- 22. PHP変数を一意のMySQL行にするにはどうすればいいですか?
- 23. Doctrine:idsを一意に保つにはどうすればいいですか?
- 24. knimeの一意の値を持つ行をグループ化するにはどうすればいいですか?
- 25. 散布図の特定のポイントに一意のIDを付けてラベルを付けるにはどうすればよいですか?
- 26. reveal.jsでフォントの色を変更するにはどうすればいいですか?
- 27. VS2012エディタタブの色付けをオフにするにはどうすればよいですか?
- 28. JavaScriptの計算のフォント、色、サイズなどを変更するにはどうすればよいですか?
- 29. ノードに名前を付けるにはどうすればいいですか?
- 30. DataPointを理論に付けるにはどうすればいいですか?
何か古いスレッドはありません、ゾンビを元気づける理由はありますか? – mKorbel