Salvar texto do joptionpane[resolvido]

ola,
tenho um vetor de botões de uma classe e cada um desses botões tem um evento que abre um joptionpane.Na tela em que utilizo estes itens eu consigo salvar o texto de cada botão pegando os mesmos com o metodo getText() mas minha dificuldade esta em pegar o texto dos comentarios de cada botão:(
como posso salvar o texto de cada joptionpane e salvar junto com os textos dos botões?
muito obrigada pela ajuda
:slight_smile:

eu nao entendi o que vc ta tentando fazer :frowning:

oiiii
eu to tentando salvar o texto do joptionpane no banco olha o print da minha tela talvez de para entender melhor :confused:
mto obg pela ajuda :slight_smile:




eu nao testei, mas deve ser isso -.-

eu nao testei, mas deve ser isso -.-

tah nao eu sei q é assim para pegar o texto do joptionpane mas acontece que eu tenho q fazer isso para cada botão :stuck_out_tongue: :stuck_out_tongue:
entao sei q deveria colocar onde estou instanciando os mesmos que é aqui o metodo que gera a quantidade de botoes de acordo com a disciplina e modulo selecionados

[code]public void determinaBotao()
{
int x = 20,y = 280;int o=60;//local onde o botao vai fik na tela
int cargaHorariaTotalMode = 0;//recebe o valor da ch que ta armazenado no banco
int resul=0;//qnte d botoes q vao ser criados
String j=null;Object l=null;
String v,v1,v2,v3;
int n,n1,n2,n3;

	try {
		conexao = conecta.conectabanco();
		comando = conexao.createStatement();
	}
	catch(Exception e1) {
		JOptionPane.showMessageDialog(null, "Erro na conexÄo do banco");
	}

	try
	{
		Object item=null;
		if(comboBox.getSelectedItem()!=null)
			item=comboBox.getSelectedItem();
		resultado=comando.executeQuery("select ch_total,plantao_cm_professor,plantao_sm_professor,tutoria,falta from cargahoraria where Id_disciplina='"+item+"'");
		resultado.next();
		j =resultado.getObject(1).toString();
		cargaHorariaTotalMode=Integer.parseInt(j);

		v =resultado.getObject(2).toString();
		n=Integer.parseInt(v);

		v1 =resultado.getObject(3).toString();
		n1=Integer.parseInt(v1);

		v2 =resultado.getObject(4).toString();
		n2=Integer.parseInt(v2);

		v3 =resultado.getObject(5).toString();
		n3=Integer.parseInt(v3);

		int menor=n;
		if(menor>n1)
			menor=n1;
		else if(menor>n2)
			menor=n2;
		else if(menor>n3)
			menor=n3;

		resul=cargaHorariaTotalMode/menor;
		b=new BotaoModulo[resul];

//aqui eu to criando os objetos da classe botao :stuck_out_tongue:
for(int i=0;i<resul;i++)
{
BotaoModulo h=new BotaoModulo();
b[i]=h;
b[i].setBounds(x, y, o, 25);
x+=o;
if(i==11)
{
y+=30;
x=5; b[i]=h;
b[i].setBounds(x, y, o, 25);

			}
			else if(i==23)
			{
				y+=30;
				x=5;	b[i]=h;
				b[i].setBounds(x, y, o, 25);
			}


			painel.add(h);
			repaint();
		}


	}
	catch(Exception e5)
	{
		JOptionPane.showMessageDialog(null, "Erro ");
		e5.printStackTrace();
	}


}

[/code]
pode me ajudar? :lol:


depois vc vai ter que fazer um for to do e fazer um cast


vai ser complicadinho.


[code]
 Component[] componentes = painel.getComponents();
        String classe;
        for (int contador = 0; contador < componentes.length; contador++) {
            classe = componentes[contador].getClass().getName();
            try {
                if (classe.contains("JButton")) {
                    ((JButton) componentes[contador]).getText(); // verificar se para pegar o nome do botao é getText() mesmo
                }

            } catch (Exception e) {
                     //tratamento de exception
            }

        }
   

[/code]

[code]((JButton) componentes[contador]).getText();   [/code]

nesta parte vc vai ter que jogar o valor do conteudo em uma lista, mas isso eu deixo pra vc pq já te expliquei como fazer em um post anterior

vai ser uma coisa do genero :roll:

depois vc vai ter que fazer um for to do e fazer um cast

vai ser complicadinho.

 Component[] componentes = painel.getComponents();
        String classe;
        for (int contador = 0; contador < componentes.length; contador++) {
            classe = componentes[contador].getClass().getName();
            try {
                if (classe.contains("JButton")) {
                    ((JButton) componentes[contador]).getText(); // verificar se para pegar o nome do botao é getText() mesmo
                }

            } catch (Exception e) {
                     //tratamento de exception
            }

        }
   

nesta parte vc vai ter que jogar o valor do conteudo em uma lista, mas isso eu deixo pra vc pq já te expliquei como fazer em um post anterior

vai ser uma coisa do genero :roll:

bah :shock: :shock: :shock: !!!
tah calma ai vamos por partes levando em conta que meu objeto esta sendo criado num vetor eu deveria fazer algo mais ou menos assim for(int i=0;i<resul;i++) b[i].getComponents(); ....
ah ja é a segunda vez que tu fala sobre o for to do qual é a diferença dele para um for normal?
mtoo obg :slight_smile:

for to do = C hahahahaah força do habito é um for normal.

passa para ele o objeto (jpanel, joptionpane) aonde os botoes estao adicionados

outra solução pode ser que funcione é esta

//declare uma lista

for(int i=0;i<b.size() ;i++) // procure uma forma de retornar o numero de objetos dentro do vetor  
   lista.add(i, ((JButton) componentes[contador]).getText() );
}

hmm
:oops: for normal ah tah
:oops: :oops: :oops: :oops:
pera ai to tentando arrumar na minha classe

vou ir modificando aqui uns itens e depois posto!
obrigada pela ajuda e explicações
:slight_smile:

ooi bem até agora o que eu modifiquei no seu codigo foi o seguinte:

[code]for(int i=0;i<resul;i++)
{
b[i].getComponents();
}
Component[] componentes = tela.getComponents();
String classe; ArrayListlista=new ArrayList();
for (int contador = 0; contador < componentes.length; contador++) {
classe = componentes[contador].getClass().getName();
try {
if (classe.contains(“JButton”)) {
((JButton) componentes[contador]).getText();
}
for(int i=0;i<b.length ;i++)
lista.add(i, ((JButton) componentes[contador]).getText() );

	            	}
	           catch (Exception e) {  
	                System.out.println("erro :"+e);
	           }  
	  
	       }  [/code]

mas tipo ainda não tenho ideias de como retornar esta lista :frowning:
mas é algo mais ou menos assim o que era para fazer :?:
mt :lol: obg pela ajuda

vc está tentando modificar o codigo sem entender ele

for(int i=0;i<resul;i++) isso nao tem utilidade… vc esta fazendo um for que vai somar ate aonde?? depois que adicionar o ultimo objeto vai começar a add null

outra coisa, os botoes estão em um JPanel ou em um JOptionPane?

se for em um JPanel é so usar este codigo

[code] Component[] componentes = SEUPAINEL.getComponents();

String classe; ArrayListlista=new ArrayList();

for (int contador = 0; contador < componentes.length; contador++) {

classe = componentes[contador].getClass().getName();

try {

if (classe.contains(“JButton”)) {

lista.add(i, ((JButton) componentes[contador]).getText());

                          System.out.println(lista.get(i));

}

catch (Exception e) {

System.out.println(“erro :”+e);

}

} [/code]

e se for um container apenas?
:oops: :oops: :oops:
sei tem muitas coisas que preciso aprender em relação a programação
:slight_smile:
obg pela ajuda

é um painel?

vc adicionou os botoes em um painel??

para voce usar aquele for vc teria que ter um controlador, do jeito que vc fez ta criando um loop infinito

eu add os botões direto na tela
:stuck_out_tongue:
eu fiz um system na variavel classe e no console apareceu classe javax.swing.JScrollPane
:shock:
ah e mais uma coisa ele não entra no if if (classe.contains("JButton")) { ...}

obg pela ajuda
por tentar resolver meus problemas :wink: :wink: hehe

faz assim

cria um metodo:

[code] public JList getNome(JPanel painel){ // no painel vc passa o painel que contem os botoes

// use o codigo que mostrei acima

return lista;
}
[/code]

oi
bah ainda nao consegui resolver este problema :frowning:

posta o codigo

o meu codigo quer dizer a implementação do teu codigo ficou assim[code] Component[] componentes = tela.getComponents();
String classe; ArrayListlista=new ArrayList();
for (int contador = 0; contador < componentes.length; contador++) {
classe = componentes[contador].getClass().getName();
System.out.println(“classe “+classe);
try {
if (classe.contains(“JButton”)) {
for(int i=0;i<b.length ;i++) // procure uma forma de retornar o numero de objetos dentro do vetor
{ lista.add(i, ((JButton) componentes[contador]).getText() );
lista.add(i, ((JButton) componentes[contador]).getText());
System.out.println(lista.get(i) +”*”+i); }
System.out.println(“no if”);
}
else
{
System.out.println(“bah!”);
}

		                    }
		                    catch (Exception e) {      
		                         System.out.println("erro :"+e);    
		                    }      
		               
		                }[/code]

o bloco de codigo do if não entra sabe ele cai direto no else pq no console fica assim classe javax.swing.JScrollPane bah! ação do botão direito...
eu tenho que modificar mais alguma coisa no metodo?fiz algo errado?
muito obrigada pela ajuda

o metodo ficou assim

[code]public ArrayList getNome(JPanel painel){ // no painel vc passa o painel que contem os botoes

	painel=pan;//faço o painel recebe o painel q add os botoes na tela
	Component[] componentes = tela.getComponents();      
	String classe;  
	ArrayList<Object>lista=new ArrayList<Object>();    
	for (int contador = 0; contador < componentes.length; contador++) {      
		classe = componentes[contador].getClass().getName();  
		System.out.println("classe "+classe);
		try {      
			if (classe.contains("JButton")) {      
				for(int i=0;i<b.length ;i++) // procure uma forma de retornar o numero de objetos dentro do vetor    
				{   lista.add(i, ((JButton) componentes[contador]).getText() );  
				lista.add(i, ((JButton) componentes[contador]).getText());     
				System.out.println(lista.get(i) +"*"+i); } 
				System.out.println("no if");
				
			}
			else
			{
				System.out.println("bah!");
			}

		}
		catch (Exception e) {      
			System.out.println("erro :"+e);    
		}      
		
	}
	return lista; 	

}

[/code]
no console continua aparecendo isso

classe javax.swing.JScrollPane bah!
hmm
era mais ou menos assim o metodo?
obrigada
:lol: