おそらく、scala-swing を拡張する他のプロジェクトを見てください。たとえば、ScalaSwingContribがあります。これは非常に単純なコンポーネントであるため、ColorChooser
コンポーネントと関連するものを見ることは良い出発点だと思います。ColorChooserEvent
import javax.{swing => js}
import js.{event => jse}
import java.awt.Color
import scala.swing._
import event.Event
class ColorChooser(initialColor: Color) extends Component {
...
override lazy val peer: js.JColorChooser =
new js.JColorChooser(initialColor) with SuperMixin
peer.getSelectionModel().addChangeListener(new jse.ChangeListener {
def stateChanged(e: jse.ChangeEvent) {
publish( new ColorChangeEvent(peer.getColor))
}
})
}
case class ColorChangeEvent(c: Color) extends Event