Dúvida variáveis JRuby

Estou com uma dúvida no jruby, não tenho certeza, mas essa me pareceu a área mais certa a se postar, então lá vai.

Eu criei uma classe no java mais ou menos assim:

package fronteira; import javax.swing.JButton; import javax.swing.JFrame; public class TelaPrincipal extends JFrame { JButton btt1 = new JButton(); public TelaPrincipal(){ // } }

depois mandei construir e o arquivo .jar pus no projeto JRuby, lá, eu pus o main.rb mais ou menos assim:

[code]require 'java’
require 'Telas/TelasJRuby.jar’
include_class ‘fronteira.TelaPrincipal’

class TelaPrincipal
alias tela_principal_initialize initialize
def initialize
tela_principal_initialize
puts(@btt1) # => nil
end
end

@tela = TelaPrincipal.new
@tela.set_visible(true)[/code]

ali eu estou montando a tela que foi construída em java, e modificando o método construtor dela, mas a minha dúvida, é como que a variável btt1 que eu pus lá na tela será passada pro ruby, @btt1 naum eh, @@btt1 naum eh, $btt1, btt1, nada.

utilize a palava chave self

self.btt1

outra coisa, o JRuby converte os metodos em java par ao padrão ruby.

se não me engano você pode usar

frame.visible = true

[]'s

[quote=Felagund]utilize a palava chave self

self.btt1

outra coisa, o JRuby converte os metodos em java par ao padrão ruby.

se não me engano você pode usar

frame.visible = true

[]'s[/quote]

realmente, não tinha pensado em usar o self, mas não adiantou cara, deu o seguinte erro:
undefined method `btt1’ for #<Java::Fronteira::TelaPrincipal:0x78482bad> (NoMethodError)

e não sabia que convertia os metodos pra esse padrao aih, como vc falou do .visible, vlw pela dica ^^

Não conheço JRuby mas tenta declarar sua variável como pública no Java ou fazer um get

hmm, de fato eu declarando a variável como pública e usando self. funcionou, mas se eu estou modificando a própria classe, eu deveria ter acesso a suas variáveis privadas não?

do jeito que vc criou o esquema ali, a variavel não é private.
crie um metodo get ao invez de deixar a variavel publica.