Salvar texto do joptionpane[resolvido]

nada contra este codigo

para ficar mais bonito nesta parte

coloca assim

o erro provavelmente está aqui

de onde veio tela?

troque pelo painel que vem por parametro no getNome

provavelmente vc fez assim

JPanel tela = new JPanel();

e ai que esta a pergunta.
por que não entra no if ??

a resposta é simples, vc nao tem nem um botão no tela para entrar no if

fiz as modificações conforme tu disseste mas ele continua pulando para o else
o codigo agora esta assim[code]public ArrayList getNome(JPanel painel){ // no painel vc passa o painel que contem os botoes

	this.pan=painel;//faço o painel recebe o painel q add os botoes na tela
	Component[] componentes = pan.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]

e no console fica assim

classe BotaoModulo bah! classe BotaoModulo bah! classe BotaoModulo bah! classe BotaoModulo bah! classe BotaoModulo bah! classe BotaoModulo bah! classe BotaoModulo bah!
:frowning:
esqueci mais alguma coisa?
ah e pan é a variavel do tipo JPanel que eu criei no inicio da classe e é onde estou adicionando os botões
ah agora falta fazer o bloco de codigo do if ser executado neh? :lol: para que eu possa pegar o texto do joptionpane de cada botao
:lol:
muito obg pela ajuda
e pelas explicações
bah to aprendendo muitas coisas:)

uma pergunta

vc está usando o JButton da propria JDK

ou vc fez um botão personalizado herdando do JButton??

troque seu codigo por este


# public ArrayList<Object> getNome(JPanel painel){  // no painel vc passa o painel que contem os botoes    
#           
#         this.pan=painel;//faço o painel recebe o painel q add os botoes na tela  
#         Component[] componentes = pan.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")) {        
#                     System.out.println("Jbutton da JDK");   
#                 }   
#                 if (classe.contains("BotaoModulo")) {        
#                     System.out.println("Jbutton personalizado");   
#                 }
                   else{
                      System.out.println("nem um jbutton encontrado");  
#                 }  
#   
#             }  
#             catch (Exception e) {        
#                 System.out.println("erro :"+e);      
#             }        
#               
#         }  
#         return lista;     
#   
#     }

para algum desavisado que venha a ler este topico e usar o codigo por favor tire o # porque com eles o codigo nao funcionará, eu to com preguiça de tirar

eu fiz uma classe que cria botões personalizados e que herda do JButton
ah troquei o codigo e tipo agora no console so aparece

classe BotaoModulo Jbutton personalizado classe BotaoModulo Jbutton personalizado classe BotaoModulo Jbutton personalizado classe BotaoModulo Jbutton personalizado classe BotaoModulo Jbutton personalizado classe BotaoModulo Jbutton personalizado classe BotaoModulo Jbutton personalizado
dai fiz o seguinte

if (classe.contains("BotaoModulo")) { System.out.println("Jbutton personalizado"); 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); } }
e o console ficou assim

classe BotaoModulo Jbutton personalizado *0 *1 *2 *3 *4 *5 *6 classe BotaoModulo Jbutton personalizado *0 *1 *2 *3 *4 *5 *6 classe BotaoModulo Jbutton personalizado *0 *1 *2 *3 *4 *5 *6 classe BotaoModulo Jbutton personalizado *0 *1 *2 *3 *4 *5 *6 classe BotaoModulo Jbutton personalizado *0 *1 *2 *3 *4 *5 *6 classe BotaoModulo Jbutton personalizado *0 *1 *2 *3 *4 *5 *6 classe BotaoModulo Jbutton personalizado *0 *1 *2 *3 *4 *5 *6
ja ta melhor um pouco neh :stuck_out_tongue:

kkkkkkkkkkkkkkkkkk

era essa resposta que eu queria

vc entendeu pq nunca entro no IF ne??

preciso comentar mais alguma coisa ou vc da conta sozinha?

se vc parar para pensar já respondi todas as suas questoes referente a este problema com meu exemplo acima, agora so falta vc pensar um pouco e fazer o que vc quer

:stuck_out_tongue: entendi pq nao entrava no if :oops: :oops: :oops:
acho q eu consigo fazer isso sozinha :stuck_out_tongue: qr dizer ja to tentando pegar o comentario atraves do cod
mas oh qualquer coisa eu post:D
pq tu sabe neh sempre acontece umas coisas estranhas com os meus codigos
kkkk
mas obg pela ajuda
ah
to tentando o seguinte
na classe do botao personalizado

[code]public void botaoDireito()
{
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
message=JOptionPane.showInputDialog("");
try {

					System.out.println("ação do botão direito... valor de message é "+message);
					
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}   
		}  

	}); 


}

public String getMessage()
{
	System.out.println("valor de message dentro do getmessage() "+message);
	return message;
}[/code]

sendo q message é um atributo privado desta classe
dai na classe q eu uso estes botoes to fazendo o seguinte no cod akele

if (classe.contains("BotaoModulo")) { System.out.println("Jbutton personalizado"); 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); String texto=b[i].getMessage(); System.out.println("valor de texto "+texto); } }
so q no console aparece classe BotaoModulo Jbutton personalizado *0 valor de message dentro do getmessage() null valor de texto null *1 valor de message dentro do getmessage() null valor de texto null *2 valor de message dentro do getmessage() null valor de texto null *3 valor de message dentro do getmessage() null valor de texto null *4 valor de message dentro do getmessage() null valor de texto null *5 valor de message dentro do getmessage() null valor de texto null *6 valor de message dentro do getmessage() null valor de texto null classe BotaoModulo Jbutton personalizado *0 valor de message dentro do getmessage() null valor de texto null *1 valor de message dentro do getmessage() null valor de texto null *2 valor de message dentro do getmessage() null valor de texto null *3 valor de message dentro do getmessage() null valor de texto null *4 valor de message dentro do getmessage() null valor de texto null *5 valor de message dentro do getmessage() null valor de texto null *6 valor de message dentro do getmessage() null valor de texto null classe BotaoModulo Jbutton personalizado *0 valor de message dentro do getmessage() null valor de texto null *1 valor de message dentro do getmessage() null valor de texto null *2 valor de message dentro do getmessage() null valor de texto null *3 valor de message dentro do getmessage() null valor de texto null *4 valor de message dentro do getmessage() null valor de texto null *5 valor de message dentro do getmessage() null valor de texto null *6 valor de message dentro do getmessage() null valor de texto null classe BotaoModulo Jbutton personalizado *0 valor de message dentro do getmessage() null valor de texto null *1 valor de message dentro do getmessage() null valor de texto null *2 valor de message dentro do getmessage() null valor de texto null *3 valor de message dentro do getmessage() null valor de texto null *4 valor de message dentro do getmessage() null valor de texto null *5 valor de message dentro do getmessage() null valor de texto null *6 valor de message dentro do getmessage() null valor de texto null classe BotaoModulo Jbutton personalizado *0 valor de message dentro do getmessage() null valor de texto null *1 valor de message dentro do getmessage() null valor de texto null *2 valor de message dentro do getmessage() null valor de texto null *3 valor de message dentro do getmessage() null valor de texto null *4 valor de message dentro do getmessage() null valor de texto null *5 valor de message dentro do getmessage() null valor de texto null *6 valor de message dentro do getmessage() null valor de texto null classe BotaoModulo Jbutton personalizado *0 valor de message dentro do getmessage() null valor de texto null *1 valor de message dentro do getmessage() null valor de texto null *2 valor de message dentro do getmessage() null valor de texto null *3 valor de message dentro do getmessage() null valor de texto null *4 valor de message dentro do getmessage() null valor de texto null *5 valor de message dentro do getmessage() null valor de texto null *6 valor de message dentro do getmessage() null valor de texto null classe BotaoModulo Jbutton personalizado *0 valor de message dentro do getmessage() null valor de texto null *1 valor de message dentro do getmessage() null valor de texto null *2 valor de message dentro do getmessage() null valor de texto null *3 valor de message dentro do getmessage() null valor de texto null *4 valor de message dentro do getmessage() null valor de texto null *5 valor de message dentro do getmessage() null valor de texto null *6 valor de message dentro do getmessage() null valor de texto null ação do botão direito... valor de message é comentario

to esquecendo algo?
kkcmo sempre
?
:lol: bg pela ajuda

eu sei q qro pegar o comentario :stuck_out_tongue: agora cmo é diferente :stuck_out_tongue: :stuck_out_tongue:

presta mais atenção no seu codigo

isso funcionaria?

aiin so mtoo desatenta mesmo!!!
mas tipo se eu fizerString texto=((Throwable) lista.get(i)).getMessage();
vai dar este errojava.lang.ClassCastException pq nao da para faer um cast
:?:
ta tipo eu entendi q eu uso os botoes q estao na lista(lista.add(i, ((JButton) componentes[contador]).getText()); ) para pegar os comentarios :stuck_out_tongue: é isso neh? :oops:
:stuck_out_tongue:
ah e tentei tb String texto=((BotaoModulo) componentes[contador]).getMessage();
mas o comentario do botao continua null :frowning:

tenta isso

acessa o metodo getText do Jbutton da superclasse

hmm
so q olha so eu acho q eu nao entendi tipo isso

[quote]tenta isso

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

acessa o metodo getText do Jbutton da superclasse[/quote]

tipo eu tenho q pegar o comentario de cada botão dai é q complica pq tipo o metodo q gera o comentario ta na classe de botao personalizado enquanto os botoes vao ser criados mesmo na outra classe :confused:
ai tava pensando nao seria mais facil eu gerar na classe q os botoes vao ser criados um metodo para criar comentario para cada botão?
ou fica pior? :oops:
mto obg pela ajuda

o comentario é oque exatamente?

a string nome do botão ou um ToolTipText ?

realmente nao entendi oq vc quer fazer com aquele codigo dentro da classe do seu botao

tah minhas perguntas são sempre bem confusas
o que eu quero fazer é pegar o texto do comentario de cada botao (tipo daqueles que tiverem algo escrito hehe)
so que na classe do meu botao personalizado eu tnho o metodo que cria os comentarios.
Dai la na outra classe onde eu crio um vetor de objetos da classe botao personalizado eu qria pegar o texto destes comentarios para que quando eu for salvar o nome das disciplinas,modulos,atividades(texto dos botoes) e os comentarios eu salvasse o comentario de cada um dai quando eu buscar os mesmos em outra tela apareceria tudo sabe nos campos certinhos se eu fosse exibir numa jtable por exemplo.
Conseguiu entender é que eu não sei explicar direito :stuck_out_tongue:
:lol: bg pela ajuda

vc vai ter que fazer um get na classe onde eu crio um vetor de objetos da classe botao personalizado.

e la fazer o tratamento, por que desse jeito que vc ta falando eu nao consigo entender nada.

acho que vc ta pegando o caminho mais dificil

já ouviu falar em JTable?

[quote]e la fazer o tratamento, por que desse jeito que vc ta falando eu nao consigo entender nada.

acho que vc ta pegando o caminho mais dificil

já ouviu falar em JTable?[/quote]
:twisted: grrrr
kkkk
trocar isso td por jtable?

tah nao entendi tipo a visualização vai ser atraves de uam jtable provavelmente
na verdade o que eu quero é poder exibir os comentarios relativos a cada botão(texto do botão no caso) tipo se tu tiver outra sugestão de como eu posso fazer isso eu aceito e ah tu gosta de trabalhar com jtables?c sim eu tenho um monte de coisas para te perguntar sobre iss :lol: é q eu até criei meu proprio modelo de jtable mas isso fica para um outro topico :lol:
mtooo obg pela ajuda

eu odeio trabalhar com Jtable

tenho um modelo que eu criei que mudo minha vida…

eu nao to conseguindo ter uma visão geral do seu problema (provavelmente pq estou trabalhando na migração do sistema hahaha e não consigo pensar em 2 coisas ao mesmo tempo)

mas vou tentar te ajudar na medida do possivel

oi
ao inves de chamar o joptionpane da classe do meu botão personalizado eu criei essa mesma ação dentro da classe onde estou criando os mesmos.Ficou assim

[code]for(int i=0;i<resul;i++)
{
BotaoModulo h=new BotaoModulo();
b[i]=h;
b[i].addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
String message;
message=JOptionPane.showInputDialog("");
try {

									System.out.println("ação do botão direito dentro da tela inserçao... valor de message é "+message);
									
								} catch (Exception e1) {
									// TODO Auto-generated catch block
									e1.printStackTrace();
								}
							}   
						}  

					}); 
			
			b[i].setBounds(x, y, o, 25);[/code]

agora vou trocar aquele system por outro codigo onde eu pego o valor dos comentarios se nao for null eu vou salvar no banco no campo obs junto com o txt do botao e tal…
ja posto
:slight_smile:

agora deu certo consigo pegar o comentario do joptionpane de cada botao e salvar todos os itens no banco.:slight_smile:
o metodo que gera os botoes e os comentarios de cada um fica assim

[code]…
b[i].addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
String comenta=JOptionPane.showInputDialog("");
try {
for(int j=0;j<message.length;j++)
{
if(comenta != null && b[j].getText()!=null)
message[j]=comenta;
System.out.println("b[j] “+b[j].getText()+” seu comentario é "+message[j]);
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

			}); 

…[/code]

dai eu fiz um metodo getMessage() assim

public String getMessage() { for(int j=0;j<message.length;j++) return message[j]; return null; }

bah muito obrigada pela ajuda e pelas explicações,me ajudaram muito!!
:slight_smile:

por nada

disponha