Duvidas sobre GUI (utilizando NetBeans)

Galera… sou iniciante em java e to com umas duvidas meio porcas em relação a GUI.

Primeiro: criei uma janela com 60 (sim, sessenta) RadioButtons sem ser em grupo, e consegui fazer o que eu queria (que era limitar as opções).
Beleza… o problema que surgiu foi o segunte: Limitei para 8 cliques, mas posso ficar clicando 8x no mesmo que buga, e ai nao posso clicar novamente.
Como faço pra, caso eu retire a seleção do Radio eu consiga fazer “cont–”?

ai vai meu codigo (vo colar so de um RadioButton porque senão vai ficar grande demais =x):

private void j06ActionPerformed(java.awt.event.ActionEvent evt) { if(cont<=7&&cont>=0){ aux=aux+"06"; cont++; } else { j06.setSelected(false); } }

Outra duvida, como eu faço para pegar os dados digitados em um TextField e adcionar para uma String? Não achei como fazer com que, depois de digitado, seja passado a uma string por um botão.

Mais uma duvida pessoa, eu tenho uma classe Main pra puxar tudo, e fazer rodar… ai eu queria que fosse adcionado em um Array dessa classe main os dados pegos da janela jAposta, mas não to conseguindo pois so consigo executar o JFrame dentro do main mesmo, e eu preciso pegar esses dados e adcionar no array na propria classe, não dentro do main, pois eu tenho que enviar como bytes via Stream esses dados para um arquivo. To perdido =X

Desde já agradeço!

Bom quanto aos radio buttons ainda não sei se posso ajudar… é mt radio button pra mim uhahuauha

Mas quanto a String do text field faça isso:

String nomeDaString = nomeDoTextField.getText();

[quote=Diegomoco]Bom quanto aos radio buttons ainda não sei se posso ajudar… é mt radio button pra mim uhahuauha

Mas quanto a String do text field faça isso:

String nomeDaString = nomeDoTextField.getText(); [/quote]

vlw pela rapida ajuda :smiley:
tipo, a questão não é a quantidade, porque eles são exatamente todos iguais, eu so queria achar como saber se foi desmarcado o radiobutton, entendeu?
vlws

Pelo que eu entendi, vc quer que possam ser escolhidas apenas 8 opções do seu RadioButton. Se for isso, em vez de vc armazenar o número de cliques em uma variável, confira se há oito botões selecionados, usando o método isSelected() dos mesmos. Assim, vc não vai ter problemas quando desabilitar os botões, diferentemente da sua abordagem. Além disso, vc poderia desabilitar os botoes nao selecionados quando o limite imposto for atingido, habilitando-os novamente se o usuário desmarcasse uma opção.

Espero ter ajudado.

[quote=renzonuccitelli] Pelo que eu entendi, vc quer que possam ser escolhidas apenas 8 opções do seu RadioButton. Se for isso, em vez de vc armazenar o número de cliques em uma variável, confira se há oito botões selecionados, usando o método isSelected() dos mesmos. Assim, vc não vai ter problemas quando desabilitar os botões, diferentemente da sua abordagem. Além disso, vc poderia desabilitar os botoes nao selecionados quando o limite imposto for atingido, habilitando-os novamente se o usuário desmarcasse uma opção.

Espero ter ajudado.[/quote]

Para fazer isso, eu teria que adicionar todos os Radio em um grupo?
esse isSelected() é de qual classe? JRadioButton mesmo? não consigo achar ela na API
vlws!

[quote]
Para fazer isso, eu teria que adicionar todos os Radio em um grupo?
esse isSelected() é de qual classe? JRadioButton mesmo? não consigo achar ela na API
vlws! [/quote]

Conferi aqui e o JRadioButton tem o método isSelected. Ele é usado para saber se a instancia gráfica está selecionada, quando o método retorna true, ou nao, qdo retorna false. E vc nao precisa colocar os botoes em grupo, vc só faz isso quado quer que apenas um possa ser selecionado do grupo, o que nao é seu caso. Alias, no seu caso, o mais apropriado seria a JCheckBox, que é usada quando nao se tem restrição quando a escolha de mais opções. Acredito que por essa característica, ela deve ser até mais leve que o RadioButton. Mas tb nada impede de vc continuar usado o que vc quer.
Como eu quis dizer no meu post anterior, se vc quer impor um limite para o numero de itens selecionados na interface gráfica eu conheço duas alternativas:

  1. Vc diz ao usuário o limite e na hora na hora em que for fazer algo com os dados, valida os dados e se eles nao estiverem condizentes, peça pro usuário refazer.
  2. Adicione um listener a cada bota para saber quando os mesmo sao alterados. Toda vez que um deles for alterado, vc vai ter que percorrer todos os botoes, contando os que estao selecionados, e isso vc faz atraves do isSelected(). Aí qdo o seu limite for atingido, vc torna os botoes nao selecionados como nao selecionaveis, com o método setEnable(false).

Eu acho a segunda solução melhor a vista do usuário, mas vai do gosto de cada um. Mas espera pra ver se derrepente algum guru aqui do GUJ nao posta uma solução melhor. Em geral ele sempre tem uma carta na manga…hehe

Cara acho que não sou muito bom em expor minha idéias por escrito, então vai um exemplo que fiz pra quatro box, e coloquei limite para 2 serem escolhidas no máximo:

[code]public class CheckBoxFrame extends JFrame {
private JCheckBox c1=new JCheckBox();
private JCheckBox c2=new JCheckBox();
private JCheckBox c3=new JCheckBox();
private JCheckBox c4=new JCheckBox();

public CheckBoxFrame() throws HeadlessException {
	super("teste");
	super.getContentPane().setLayout(new FlowLayout());
	super.getContentPane().add(c1);
	super.getContentPane().add(c2);
	super.getContentPane().add(c3);
	super.getContentPane().add(c4);
	ChecBoxListener checkListener=new ChecBoxListener(this,2);
	c1.addItemListener(checkListener);
	c2.addItemListener(checkListener);
	c3.addItemListener(checkListener);
	c4.addItemListener(checkListener);
	super.setDefaultCloseOperation(EXIT_ON_CLOSE);	
	this.setSize(200, 200);
	this.setVisible(true);
	
}

public int getQuantidadeDeBoxSelecionados(){
	int i=0;
	if(c1.isSelected())
		++i;
	if(c2.isSelected())
		++i;
	if(c3.isSelected())
		++i;
	if(c4.isSelected())
		++i;
	return i;
}

public void setBoxNaoSelecionadosEnable(boolean flag){
	if(!c1.isSelected())
		c1.setEnabled(flag);
	if(!c2.isSelected())
		c2.setEnabled(flag);
	if(!c3.isSelected())
		c3.setEnabled(flag);
	if(!c4.isSelected())
		c4.setEnabled(flag);
}

public static void main(String[] a){
	new CheckBoxFrame();
}

}[/code]

[code]public class ChecBoxListener implements ItemListener {
public ChecBoxListener(CheckBoxFrame checkFrame,int limiteBoxSelecionaveis) {
super();
this.checkFrame = checkFrame;
this.limiteBoxSelecionaveis=limiteBoxSelecionaveis;
}
private CheckBoxFrame checkFrame;
private int limiteBoxSelecionaveis;
@Override
public void itemStateChanged(ItemEvent e) {

	if(e.getStateChange()==ItemEvent.SELECTED&&checkFrame.getQuantidadeDeBoxSelecionados()==limiteBoxSelecionaveis){
		checkFrame.setBoxNaoSelecionadosEnable(false);
		System.out.println(checkFrame.getQuantidadeDeBoxSelecionados());
	}
	else if(e.getStateChange()==ItemEvent.DESELECTED&&checkFrame.getQuantidadeDeBoxSelecionados()==limiteBoxSelecionaveis-1){
		checkFrame.setBoxNaoSelecionadosEnable(true);
	}
	
}

}[/code]

Não me preocupei em dar bons nomes pras variaveis nem em otimizar muita coisa, entao acredito que vc possa melhorar o código. Espero ter sido mais claro com os exemplos…

o problema é como to usando RadioButton, ele não possui o método isSelected()
=(
no NetBeans não posso editar o cod. fonte e continuar utilizando o metodo gráfico de edição, então fica impossivel trocar 60 rb pra cbox =(
Será que tem jeito?

Que o Radio tem o método isSelected, isso é certeza. Olhá só:

[code]public class CheckBoxFrame extends JFrame {
private JRadioButton c1=new JRadioButton();
private JRadioButton c2=new JRadioButton();
private JRadioButton c3=new JRadioButton();
private JRadioButton c4=new JRadioButton();

public CheckBoxFrame() throws HeadlessException {
	super("teste");
	super.getContentPane().setLayout(new FlowLayout());
	super.getContentPane().add(c1);
	super.getContentPane().add(c2);
	super.getContentPane().add(c3);
	super.getContentPane().add(c4);
	ChecBoxListener checkListener=new ChecBoxListener(this,2);
	c1.addItemListener(checkListener);
	c2.addItemListener(checkListener);
	c3.addItemListener(checkListener);
	c4.addItemListener(checkListener);
	super.setDefaultCloseOperation(EXIT_ON_CLOSE);	
	this.setSize(200, 200);
	this.setVisible(true);
	
}

public int getQuantidadeDeBoxSelecionados(){
	int i=0;
	if(c1.isSelected())
		++i;
	if(c2.isSelected())
		++i;
	if(c3.isSelected())
		++i;
	if(c4.isSelected())
		++i;
	return i;
}

public void setBoxNaoSelecionadosEnable(boolean flag){
	if(!c1.isSelected())
		c1.setEnabled(flag);
	if(!c2.isSelected())
		c2.setEnabled(flag);
	if(!c3.isSelected())
		c3.setEnabled(flag);
	if(!c4.isSelected())
		c4.setEnabled(flag);
}

public static void main(String[] a){
	new CheckBoxFrame();
}

}
[/code]

Trocando a os check box por radioButton funcionou perfeitamente. Agora qdo ao fato de nao poder mexer no fonte, é por uso que sempre faço minhas janelas de forma programática, sem ferramenta. Isso pq elas ficam em geral, sem código lixo e eu posso mexer no que eu kiser…
Mas de qq forma fica a dica: Use o RadioButton quando vc kiser que usário possa escolhar apenas uma opção de um grupo. Caso contrário, use checkBox…