Como consigo pegar um valor específico dentro de um ArrayList?
6 respostasResolvido
javafxjava
M
Marques14
Pessoal, estou desenvolvendo um “fórum” em JavaFX e há uma aba específica para mostrar o conteúdo de um post. Porém, no método que fiz para obter todas as informações do post, há muitas coisas e quero que apareça apenas o conteúdo. Como posso fazer isso?
Como está fazendo a exibição? Mostre o código de onde exibe o post nessa aba.
Pelo código da sua classe Post, seria o caso de chamar o metodo getConteudo(), que suponho ser o conteúdo que você deseja.
Se não é isso, seja mais claro na dúvida.
Abraço.
M
Marques14
Eu pensei em fazer isso mas quando tento usar o getConteudo() ele simplesmente diz que é inválido - não existe. Irei deixar o código aqui (ele não tá bem estruturado, faltam algumas coisas e, a principio, ele iria carregar o conteúdo ao clicar no botão “perfil” - apenas para teste). O código:
FXMLPostagemController:
packagematforum;importjava.net.URL;importjava.util.ResourceBundle;importjavafx.event.ActionEvent;importjavafx.fxml.FXML;importjavafx.fxml.Initializable;importjavafx.scene.control.Button;importjavafx.scene.control.Label;importjavafx.scene.control.TextArea;import staticmatforum.FXMLCriarPostController.postagens;/** * FXML Controller class * * @author conta */publicclassFXMLPostagemControllerimplementsInitializable{@FXMLprivateButtonbtnSair;@FXMLprivateButtonbtnVoltar;@FXMLprivateLabellblTituloPost;@FXMLprivateTextAreatxtConteudoPost;@FXMLprivateLabellblData;@FXMLprivateLabellblAutor;@FXMLprivateButtonbtnPerfil;@FXMLprivateLabellblPerfilIndisponivel;/** * Initializes the controller class. */@Overridepublicvoidinitialize(URLurl,ResourceBundlerb){txtConteudoPost.setWrapText(true);}@FXMLprivatevoidclickPerfil(ActionEventevent){lblPerfilIndisponivel.setOpacity(1);txtConteudoPost.setText(postagens.getConteudo());}@FXMLprivatevoidclickSair(ActionEventevent){MATForum.mudarTela("inicio");FXMLTelaInicialController.logado=false;}@FXMLprivatevoidclickVoltar(ActionEventevent){if(FXMLTelaInicialController.logado==true){MATForum.mudarTela("principal");}else{MATForum.mudarTela("inicio");}}}
S
staroski
Onde está a declaração e a inicialização da variável postagens?
M
Marques14
postagens é o ArrayList que está coletando todas as informações de um post. Irei deixar aqui a classe que ela está.
FXMLCriarPostController:
packagematforum;importjava.net.URL;importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;importjava.util.ArrayList;importjava.util.ResourceBundle;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;import staticjava.util.concurrent.TimeUnit.SECONDS;importjavafx.event.ActionEvent;importjavafx.fxml.FXML;importjavafx.fxml.Initializable;importjavafx.scene.control.Button;importjavafx.scene.control.Label;importjavafx.scene.control.TextArea;importjavafx.scene.control.TextField;importjavafx.scene.image.ImageView;importmatforum.models.Post;/** * FXML Controller class * * @author conta */publicclassFXMLCriarPostControllerimplementsInitializable{@FXMLprivateButtonbtnSair;@FXMLprivateButtonbtnVoltar;@FXMLprivateTextFieldtxtTitulo;@FXMLprivateTextFieldtxtDescricao;@FXMLprivateTextAreatxtConteudo;@FXMLprivateTextFieldtxtReferencia;@FXMLprivateTextFieldtxtAutor;@FXMLprivateTextFieldtxtData;@FXMLprivateButtonbtnEnviar;@FXMLprivateButtonbtnPerfil;@FXMLprivateLabellblPerfilIndisponivel;publicstaticStringtitulo=null;publicstaticStringdescricao=null;publicstaticStringconteudo=null;publicstaticStringreferencia=null;publicstaticStringautor=null;publicstaticStringdataPostagem=null;publicstaticArrayList<Post>postagens=newArrayList();@FXMLprivateButtonbtnAutor;@FXMLprivateButtonbtnData;@FXMLprivateImageViewimagemConfirmado;@FXMLprivateLabellblConfirmado;@FXMLprivateImageViewimagemErro;@FXMLprivateLabellblErroTituloVazio;@FXMLprivateLabellblErroDescricaoVazia;@FXMLprivateLabellblErroConteudoVazio;@FXMLprivateLabellblErroAutorVazio;@FXMLprivateLabellblErroDataVazia;@FXMLprivateLabellblErroPostVazio;/** * Initializes the controller class. */@Overridepublicvoidinitialize(URLurl,ResourceBundlerb){txtConteudo.setWrapText(true);}@FXMLprivatevoidclickSair(ActionEventevent){MATForum.mudarTela("inicio");limparDados();FXMLTelaInicialController.logado=false;}@FXMLprivatevoidclickVoltar(ActionEventevent){MATForum.mudarTela("principal");limparDados();}@FXMLprivatevoidclickEnviar(ActionEventevent){criarPost();}@FXMLprivatevoidclickPerfil(ActionEventevent){contagemPerfilIndisponivel();}@FXMLprivatevoidclickAutor(ActionEventevent){carregarAutor();}@FXMLprivatevoidclickData(ActionEventevent){coletarData();}publicvoidcoletarData(){LocalDateTimedataHoje=LocalDateTime.now();DateTimeFormatterformatterData=DateTimeFormatter.ofPattern("dd/MM/uuuu");StringdataFormatada=formatterData.format(dataHoje);System.out.println(dataFormatada);txtData.setEditable(true);txtData.setText(dataFormatada);txtData.setEditable(false);}publicvoidcriarPost(){titulo=txtTitulo.getText();descricao=txtDescricao.getText();conteudo=txtConteudo.getText();referencia=txtReferencia.getText();autor=txtAutor.getText();dataPostagem=txtData.getText();if("".trim().equals(referencia)){referencia="Nenhuma";}if("".trim().equals(titulo)&&"".trim().equals(descricao)&&"".trim().equals(conteudo)&&"".trim().equals(autor)&&"".trim().equals(dataPostagem)){imagemErro.setOpacity(1);lblErroPostVazio.setOpacity(1);contagemErros();}elseif("".trim().equals(titulo)){imagemErro.setOpacity(1);lblErroTituloVazio.setOpacity(1);contagemErros();}elseif("".trim().equals(descricao)){imagemErro.setOpacity(1);lblErroDescricaoVazia.setOpacity(1);contagemErros();}elseif("".trim().equals(conteudo)){imagemErro.setOpacity(1);lblErroConteudoVazio.setOpacity(1);contagemErros();}elseif("".trim().equals(autor)){imagemErro.setOpacity(1);lblErroAutorVazio.setOpacity(1);contagemErros();}elseif("".trim().equals(dataPostagem)){imagemErro.setOpacity(1);lblErroDataVazia.setOpacity(1);contagemErros();}else{imagemConfirmado.setOpacity(1);lblConfirmado.setOpacity(1);contagemCadastrado();PostnovoPost=newPost(titulo,descricao,conteudo,referencia,autor,dataPostagem);postagens.add(novoPost);System.out.println(postagens);limparDados();}}publicvoidcontagemPerfilIndisponivel(){finalScheduledExecutorServicescheduler=Executors.newScheduledThreadPool(1);finalRunnablerunnable=newRunnable(){intcountdownStarter=5;@Overridepublicvoidrun(){lblPerfilIndisponivel.setOpacity(1);countdownStarter--;if(countdownStarter<0){lblPerfilIndisponivel.setOpacity(0);scheduler.shutdown();}}};scheduler.scheduleAtFixedRate(runnable,0,1,SECONDS);}publicvoidlimparDados(){txtTitulo.clear();txtDescricao.clear();txtConteudo.clear();txtReferencia.clear();txtAutor.clear();txtData.clear();}publicvoidcarregarAutor(){txtAutor.setEditable(true);txtAutor.setText(FXMLTelaInicialController.nomeLogin);txtAutor.setEditable(false);}publicvoidcontagemErros(){finalScheduledExecutorServicescheduler=Executors.newScheduledThreadPool(1);finalRunnablerunnable=newRunnable(){intcountdownStarter=5;@Overridepublicvoidrun(){countdownStarter--;if(countdownStarter<0){imagemErro.setOpacity(0);lblErroTituloVazio.setOpacity(0);lblErroDescricaoVazia.setOpacity(0);lblErroConteudoVazio.setOpacity(0);lblErroAutorVazio.setOpacity(0);lblErroDataVazia.setOpacity(0);lblErroPostVazio.setOpacity(0);scheduler.shutdown();}}};scheduler.scheduleAtFixedRate(runnable,0,1,SECONDS);}publicvoidcontagemCadastrado(){finalScheduledExecutorServicescheduler=Executors.newScheduledThreadPool(1);finalRunnablerunnable=newRunnable(){intcountdownStarter=5;@Overridepublicvoidrun(){countdownStarter--;if(countdownStarter<0){imagemConfirmado.setOpacity(0);lblConfirmado.setOpacity(0);scheduler.shutdown();}}};scheduler.scheduleAtFixedRate(runnable,0,1,SECONDS);}}
T
Solucao aceita
TerraSkilll1 like
Se postagens é um ArrayList, ele não vai ter o método getConteudo(), que pertence à classe Post. Você precisa pegar o objeto de dentro do ArrayList, para depois pegar o conteúdo. Algo como: