我使用来自JRuby的Swing,我正在尝试使用TableModel作为输入来设置JTable。
table_headers看起来像这样:[“bla”,“narf”,“poit”]
table_data看起来像这样:[[“one”,“two”],[“test,test”],[“hello”,“world”]]
my_model = javax.swing.table.DefaultTableModel.new(table_data,table_headers)
结果
C:/jruby/lib/ruby/site_ruby/shared/builtin/javasupport/java.rb:51:在 `new':没有带参数的构造函数 匹配[class org.jruby.RubyArray, 对象上的类org.jruby.RubyArray] (NameError)
my_model = javax.swing.table.DefaultTableModel.new(table_data.to_java,table_headers.to_java)
结果
C:/jruby/lib/ruby/site_ruby/shared/builtin/javasupport/java.rb:51:没有带参数匹配的构造函数 [类 org.jruby.java.proxies.ArrayJavaProxy, 类 org.jruby.java.proxies.ArrayJavaProxy] on object(NameError)
知道如何解决这个问题吗?
另外:是否有简单的方法来简单地创建表格并设置字段?
(例如,某些内容:
bla = SomeTable.new(5,5)
bla [2] [1] =“编辑”
)
P.S。正如你可能从错误消息中看到的那样,我必须使用windows
答案 0 :(得分:1)
我之前已经看过这种类型的东西,它有多个构造函数具有相似数量的args(但是类型不同)。 JRuby有时很难选择你想要命中的构造函数(重载方法也是如此)。在这种情况下很容易理解为什么:一些构造函数采用Object []。
幸运的是,您可以在实例化后添加列和数据:
m = javax.swing.table.DefaultTableModel.new
m.add_column("id")
m.add_column("name")
m.add_row(["1", "jimmy"].to_java)
m.add_row(["2", "robert"].to_java)
...等
另外:是否有一种“简单”的方法来简单地创建表格并设置字段?
您可以创建自己的包装,或者查看MonkeyBars或profligacy