tag:blogger.com,1999:blog-19626531.post4402484234724312349..comments2023-11-02T08:32:39.646+01:00Comments on Ola Bini: Programming Language Synchronicity: The JRuby Tutorial #4: Writing Java extensions for JRubyOla Binihttp://www.blogger.com/profile/15793488672952593953noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-19626531.post-48902810473240336882006-10-25T10:49:00.000+02:002006-10-25T10:49:00.000+02:00Great tutuorial! How about one using the MetaClass...Great tutuorial! How about one using the MetaClasses approach?<br /><br />I noticed some differences between the Ruby and Java versions and attach a diff for it.<br /><br />@@ -15,9 +15,10 @@<br /> regenerate<br /> end<br /> %w(n1 n2 range).each do |n|<br />- define_method(n) do |v|<br />- send("#{n}=",v)<br />+ define_method("#{n}=") do |v|<br />+ instance_variable_set("@#{n}", v)<br /> regenerate<br />+ v<br /> end<br /> endlunikihttps://www.blogger.com/profile/04227815764632242988noreply@blogger.comtag:blogger.com,1999:blog-19626531.post-62953124071075737202006-10-22T07:28:00.000+02:002006-10-22T07:28:00.000+02:00Found the problem out:
Awt::SystemTray systemTray...Found the problem out:<br /><br />Awt::SystemTray systemTray = Awt::SystemTray.getSystemTray()<br /><br />should have been<br /><br />systemTray = Awt::SystemTray.getSystemTray()<br /><br />:) sorry to have created unnecessary noise here.Anonymoushttps://www.blogger.com/profile/17390893896954282422noreply@blogger.comtag:blogger.com,1999:blog-19626531.post-67949356640728388832006-10-22T07:13:00.000+02:002006-10-22T07:13:00.000+02:00I was experimenting with the latest source of JRub...I was experimenting with the latest source of JRuby (subversion version 2362) from the trunk and Java Mustang. I am trying to write some example code where in I want to invoke the Java SystemTray class from the java.awt package.in ruby. The SystemTray class is a new addition in Java Mustang.<br /><br />So I do the following:<br />-----------------------------<br />require 'java'<br /><br />module Awt<br /> include_package 'java.awt'<br />end<br /><br />class SwingDock<br /> def initialize<br /> Awt::SystemTray systemTray = Awt::SystemTray.getSystemTray()<br /> end<br />end<br />sd = SwingDock.new<br />-----------------------------<br /><br />$jruby swingdock1.rb<br />swingdock1.rb:9:in `method_missing': undefined method `SystemTray' for<br />Awt:Module (NoMethodError)<br /> from swingdock1.rb:9:in `initialize'<br /> from swingdock1.rb:12:in `new'<br /> from swingdock1.rb:12<br /><br />I have managed to get access to other awt classes just fine. Do I have to do something special to access the SystemTray class in the java.awt package?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-19626531.post-84961174463161554752006-10-22T00:38:00.000+02:002006-10-22T00:38:00.000+02:00Good stuff, Ola. Now you've got me wondering if I ...Good stuff, Ola. Now you've got me wondering if I can benefit from moving some of my modules into Java.kofnohttps://www.blogger.com/profile/06131294077831669412noreply@blogger.com