Usando RadioButton.setSelected()
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:
Método que chama o marcador de botões:
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!
public static void SetaBotoes(Double KPs[][]) {
if (KPs[1][0] < 1) {
Radio1.setSelected(true);
}
}
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[][]
}
});
}
César Silva
Curtidas 0
Respostas
Ricardo Staroski
09/04/2009
Porque o método [b]setaBotoes[/b] é estático?
Se puder postar o código completo vai ajudar bastante...
GOSTEI 0
César Silva
09/04/2009
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.......
GOSTEI 0
Marco Biscaro
09/04/2009
SetaBotoes NÃO deve ser estático e deveria ser chamado no construtor do seu JFrame, por exemplo.
GOSTEI 0
César Silva
09/04/2009
Desculpem pq estou aprendendo JAVA agora. Tinha experiencia em VB.NET, mas nao em JAVA.
O que seria o construtor do JFrame?
Grato!
GOSTEI 0
Roberto
09/04/2009
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,
}
GOSTEI 0
Ricardo Staroski
09/04/2009
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();
}
}
GOSTEI 0
César Silva
09/04/2009
Consegui pessoal!
Mto obrigado!
Eu chamei o [b][i]SetaBotoes() [/b][/i] dentro do construtor da jFrame e tudo funcionou!
Muito obrigado galera!!!!!!
GOSTEI 0
César Silva
09/04/2009
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:
Mais uma vez obrigado pela atenção!
private void BotaoExecutarActionPerformed(java.awt.event.ActionEvent evt) {
GeraGrafico.main("title","axis1","axis2",KPs);
}GOSTEI 0
César Silva
09/04/2009
UP!!!!!!!! :espanto:
GOSTEI 0
Carlos Heuberger
09/04/2009
[quote="BurninHell"]UP!!!!!!!! :espanto:
What???
GOSTEI 0
César Silva
09/04/2009
Ainda nao consegui resolver o problema......
:assusta:
GOSTEI 0
Carlos Heuberger
09/04/2009
[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:
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:
private void BotaoExecutarActionPerformed(java.awt.event.ActionEvent evt) {
GeraGrafico.main("title","axis1","axis2",KPs);
}...
JButton botaoExecutar
...
botaoExecutar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
BotaoExecutarActionPerformed(ev);
}
});
...GOSTEI 0