我对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中做的事情。
答案 0 :(得分:0)
这与mainWindow的布局有关,并且与用Java编写的行为相同。默认值为BorderLayout,它会更改帧内容的大小。您可以尝试使用类似FlowLayout的内容。
肯定有setBounds
方法。