2014年6月23日月曜日

SwingBuilderでコンボボックスのデフォルトの色を設定する

SwingBuilderでコンボボックスのデフォルトの色を設定するには、以下のUIManagerのキーを設定します。
  • ComboBox.background : コンボボックスの背景色
  • ComboBox.foreground : コンボボックスの文字色
  • ComboBox.selectionBackground : コンボボックスの選択した項目の背景色
  • ComboBox.selectionForeground : コンボボックスの選択した項目の文字色

サンプルコード
import java.awt.*
import javax.swing.*
import groovy.swing.*

// コンボボックスのデフォルトカラーを設定
UIManager.put("ComboBox.background", new Color(0xcc, 0xdd, 0xff))
UIManager.put("ComboBox.foreground", new Color(0x77, 0x99, 0xdd))
UIManager.put("ComboBox.selectionBackground", new Color(0xff, 0xff, 0xdd))
UIManager.put("ComboBox.selectionForeground", new Color(0x80, 0x80, 0x80))

sb = new SwingBuilder()
sb.edt {
  frame(
    title: "example - setting colors for Combobox",
    show: true,
    resizable: true,
    size: [200, 200],
    defaultCloseOperation: WindowConstants.EXIT_ON_CLOSE
  ){
    def options = ["example option1", "example option2", "example option3"]
    comboBox(id:"cb1", items: options,
      constraints: BorderLayout.NORTH
    )
    button(text:"OK", constraints: BorderLayout.SOUTH,
      actionPerformed: {
        sb.optionPane(
          message:"combobox1=${sb.cb1.selectedItem}, index=${sb.cb1.selectedIndex}",
          messageType:JOptionPane.INFORMATION_MESSAGE)
          .createDialog("combobox").visible = true
      }
    )
  }
}
実行時画面

動作環境
groovy 2.2.2, JDK 1.7 update55

0 件のコメント:

コメントを投稿