Fórum Usando RadioButton.setSelected() #568860

09/04/2009

0

Pessoal, estou com o seguinte problema. (Utilizo NetBeans 6.5) Tenho um arquivo de dados que leio (importo esses dados para um vetor KPs[][]) e, a partir desses dados, necessito que minha alguns RadioButtons sejam automaticamente selecionados na minha jFrame. O problema é que quando tento usar o setSelected(true) no meu método estático (que recebe KPs[][]) o ) o seguinte erro aparece "non-static variable Radio1 cannot be referenced from a static context". Método que executa a marcação dos botões:
public static void SetaBotoes(Double KPs[][]) {
        if (KPs[1][0] < 1) {
            Radio1.setSelected(true);
        }
}
Método que chama o marcador de botões:
public static void main(final Double KPs[][]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TipoAssinatura().setVisible(true); //Torna o jFrame visível
                SetaBotoes(KPs);                              //Marca os RadioButtons de acordo com informações do KPs[][]
            }
        });
    }
Não sei se me fiz entender direito, mas espero que sim! Se alguém puder me ajudar ficarei muito agradecido! Abraços a todos!
César Silva

César Silva

Responder

Posts

09/04/2009

Ricardo Staroski

Porque o método [b]setaBotoes[/b] é estático? Se puder postar o código completo vai ajudar bastante...
Responder

Gostei + 0

09/04/2009

César Silva

Pq se eu coloco o [i][b]SetaBotoes[/i][/b] como não-estático outro erro aparece no [i][b]main[/i][/b]: "non-static method SetaBotoes(java.lang.Double[][]) cannot be referenced from a static context" Não sei mais o que fazer.......
Responder

Gostei + 0

09/04/2009

Marco Biscaro

SetaBotoes NÃO deve ser estático e deveria ser chamado no construtor do seu JFrame, por exemplo.
Responder

Gostei + 0

09/04/2009

César Silva

Desculpem pq estou aprendendo JAVA agora. Tinha experiencia em VB.NET, mas nao em JAVA. O que seria o construtor do JFrame? Grato!
Responder

Gostei + 0

09/04/2009

Roberto

Construtor é parecido com um metodo,mas não é um metodo. Você declara um construtor quando deseja que quem referencie sua classe seja obrigado a levar as instruções dentro do construtor. Para complementar todo programa em java tem um construtor, que quando não é declarado o compilador declara um default(vazio). Para se declarar um construtor você deve atribuir o nome da classe e se quiser pode passar argumentos exemplo:
public nomeDaClasse(){
 //as intruções vão aqui, 
 
}
Responder

Gostei + 0

09/04/2009

Ricardo Staroski

O construtor é o "método" invocado quando você usa a palavra reservada [b]new[/b] ao instanciar uma classe. Você declara um construtor quando deseja executar algum código durante a inicialização de um objeto, ou quando quer passar algum argumento durante a instanciação. Alguns documentos usam o termo [b]método construtor[/b] que também está certo, já que a declaração de um construtor é semelhante à declaração de um método, porém com duas particularidades: - Um construtor não tem retorno (o retorno é a instância da classe); - Um construtor [b]deve[/b] possuir o nome da classe Exemplo:
public class MinhaClasse {

    // Isso aqui é um construtor
    // a declaração é parecida com a declaração de um método
    // porém não há retorno e o nome é igual ao nome da classe
    public MinhaClasse() {
        System.out.println("MinhaClasse instanciada");
    }

    // Isso aqui é um método
    public void fazAlgo() {
        System.out.println("MinhaClasse fez alguma coisa");
    }

    // Embora pareça um construtor, isso aqui também é um método
    // o nome é igual ao da classe mas foi definido um tipo de retorno ( void )
    // Isso é um típico exemplo do que não se deve fazer pois prejudica a legibilidade do código
    public void MinhaClasse() {
        System.out.println("MinhaClasse invocou o método chamado MinhaClasse");
    }
}
public class Teste {

    public static void main(String[] args) {
        // declarando uma variável do tipo MinhaClasse
        MinhaClasse instancia;

        // invocando o construtor
        instancia = new MinhaClasse();

        // invocando o método fazAlgo
        instancia.fazAlgo();

        // invocando o método MinhaClasse
        instancia.MinhaClasse();
    }
}
Responder

Gostei + 0

09/04/2009

César Silva

Consegui pessoal! Mto obrigado! Eu chamei o [b][i]SetaBotoes() [/b][/i] dentro do construtor da jFrame e tudo funcionou! Muito obrigado galera!!!!!!
Responder

Gostei + 0

09/04/2009

César Silva

Xiii.... Agora esbarrei em outro problema. Eu quero que ao clicar no botao Executar nesta mesma jFrame ele chame um outro método levando o vetor [b]KPs[/b]. Código:
private void BotaoExecutarActionPerformed(java.awt.event.ActionEvent evt) {
    GeraGrafico.main("title","axis1","axis2",KPs);
}
Mais uma vez obrigado pela atenção!
Responder

Gostei + 0

09/04/2009

César Silva

UP!!!!!!!! :espanto:
Responder

Gostei + 0

09/04/2009

Carlos Heuberger

[quote="BurninHell"]UP!!!!!!!! :espanto:
What???
Responder

Gostei + 0

09/04/2009

César Silva

Ainda nao consegui resolver o problema...... :assusta:
Responder

Gostei + 0

09/04/2009

Carlos Heuberger

[quote="BurninHell"]Xiii.... Agora esbarrei em outro problema. Eu quero que ao clicar no botao Executar nesta mesma jFrame ele chame um outro método levando o vetor [b]KPs[/b]. Código:
private void BotaoExecutarActionPerformed(java.awt.event.ActionEvent evt) {
    GeraGrafico.main("title","axis1","axis2",KPs);
}
Mais uma vez obrigado pela atenção!
mas qual o problema? o código parece estar em ordem. Meio estranho voce estar chamando o método main (com 4 parametros)... e não sei o que é o GeraGrafico. Seria bom voce estudar um pouco a convenção de código sugerida pela SUN, principalmente em relação ao uso de letras maiúsuclas e minúsculas: http://java.sun.com/docs/codeconv/index.html O que pode estar faltando é o ActionListener para chamar esse método:
...
JButton botaoExecutar
... 
botaoExecutar.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent ev) {
    BotaoExecutarActionPerformed(ev);
  }
});
...
[]]
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar