2014年8月31日日曜日

SwingBuilderでマウスホバー時にラベルの色を変更する

SwingBuilderでマウスホバー時にラベルの色を変更するには、以下のコードの様にmouseEntered/mouseExitedを使用します。
サンプルコード
import java.awt.*
import javax.swing.*
import groovy.swing.*

sb = new SwingBuilder()
sb.edt {
  frame(
    title: "example - label color when mouse over",
    show: true,
    resizable: true,
    pack: true,
    defaultCloseOperation: WindowConstants.EXIT_ON_CLOSE
  ){
    label(id:"lbl1", text:"example label2",
      // 文字列の色
      foreground: new Color(0xcc, 0xdd, 0xff),
      // 背景色(背景色を設定する場合はopaque=trueにする)
      background: new Color(0x00, 0x00, 0x00),
      opaque:true,
      // マウスホバー時
      mouseEntered: { lbl1.setBackground(Color.WHITE) },
      // マウスがラベル上から出た場合
      mouseExited: { lbl1.setBackground(new Color(0x80, 0x80, 0x80)) },
      constraints: BorderLayout.CENTER,
      font: new Font("Serif", Font.BOLD, 32)
     )
  }
}
実行時画面

動作環境
groovy 2.2.2, JDK 1.7 update55

0 件のコメント:

コメントを投稿