使用RUBY创建GUI

时间:2010-11-17 04:25:17

标签: user-interface netbeans jruby

我对Ruby印象非常深刻,我正在NetBeans中试验JRuby。但是很难获得关于使用JRuby和Swing的一小部分信息。目前,我有以下程序,除了注释行外,它有效。

require 'java'

include_class 'java.awt.event.ActionListener'
include_class 'javax.swing.JButton'
include_class 'javax.swing.JFrame'

class ClickAction
   include ActionListener

   def actionPerformed(event)
      puts "Button clicked"
   end
end #ClickAction

class MainWindow < JFrame
   def initialize
      super "JRuby Swing Demo"
      setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
      button = JButton.new "Click me"
      button.setSize 30, 100                  #this line does nothing
      button.addActionListener ClickAction.new
      add button        
      pack
   end
end

mainWindow = MainWindow.new
mainWindow.setSize 300, 300
mainWindow.setVisible(true)

当我运行它时,按钮会自动扩展以占据整个窗口。 那么为什么“setSize”在主窗口上工作,而不是在按钮上工作。

另外,它有一个类似于Java的“setBounds”方法吗?

感谢您对此提供任何帮助。我用Java编写自己的布局,这就是我想在JRuby中做的事情。

1 个答案:

答案 0 :(得分:0)

这与mainWindow的布局有关,并且与用Java编写的行为相同。默认值为BorderLayout,它会更改帧内容的大小。您可以尝试使用类似FlowLayout的内容。

肯定有setBounds方法。

相关问题