2

I am trying to give a window in my desk app transparency. I've come across the AWTUtilities method, setWindowOpacity(), but I haven't been able to use it on my project. The line import com.sun.awt.AWTUtilities does not seem to work.

Is there a way to use AWTUtilities on JRuby?

I have very little JRuby knowledge and even less Java. Thank you.

slvdrog
  • 25
  • 2

1 Answers1

2

Just like any other Java class in JRuby, if you are using Sun JDK:

java_import 'com.sun.awt.AWTUtilities'

Here is an example:

require 'java'

java_import 'javax.swing.JFrame'
java_import 'javax.swing.JButton'
java_import 'com.sun.awt.AWTUtilities'

f = JFrame.new
f.add JButton.new('test')
f.title = 'title'
f.set_size(200,200)

AWTUtilities.set_window_opacity(f, 0.75)
f.visible = true
Sébastien Le Callonnec
  • 26,254
  • 8
  • 67
  • 80
  • Thank you Sébastien, but when I try to run the script I get an error 'cannot load Java class com.sun.awt.AWTUtilities (NameError)'. I checked and I have installed sun-java6-jdk. – slvdrog Apr 04 '11 at 18:41
  • @slvdrog: what does `java -version` give? – Sébastien Le Callonnec Apr 04 '11 at 18:42
  • ébastien: this, This: java version "1.6.0_20" OpenJDK Runtime Environment (IcedTea6 1.9.7) (6b20-1.9.7-0ubuntu1) OpenJDK Server VM (build 19.0-b09, mixed mode) – slvdrog Apr 04 '11 at 19:05
  • I had JRuby 1.5 installed, updated to 1.6 and still getting the same error. Any advise? – slvdrog Apr 06 '11 at 06:33