アクションをブロックで渡した時の場合分け
大場先生が添削してくれました。
#!/usr/bin/env jruby require 'java' import javax.swing.JFrame import javax.swing.JPanel import javax.swing.event.MouseInputAdapter import java.awt.event.MouseMotionListener import java.awt.event.MouseListener class SimplePaint < JFrame def initialize(title) super title panel=self.content_pane panel.add_mouse_listener MouseListener.impl{|method,e| case method when :mousePressed @x=e.get_x @y=e.get_y end } panel.add_mouse_motion_listener MouseMotionListener.impl{|method,e| case method when :mouseDragged g = e.source.graphics x = e.get_x y = e.get_y g.draw_line(@x,@y,x,y) @x = x @y = y end } end end frame=SimplePaint.new("SimplePaint") frame.default_close_operation=(JFrame::EXIT_ON_CLOSE) frame.set_size(350,250) frame.visible=true
ただ、場合分けしたい場合はそれ用のクラスを作った方がいいかもしれませんね。