1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

O JCombobox não mostra os dados que estão num arquivo .txt

tenho um campo de texto para pegar o nome das pessoas e um botão que salva esses nomes em um arquivo de texto. E Eu tenho também um jCombobox, masele só mostra os dados que estão dentro do txt se eu clicar em Salvar. Eu queria que os dados aparecessem assim que eu abrisse a tela, sem a necessidade de cilcar em salvar. Como recuperar esses dados que já estão dentro do txt e mostrar no combobox, logo que a tela é iniciada?

Imagem: quando eu abro a aplicação está exatamente assim. sem nada no combobox, sendo que já tem dados dentro do .txt. somente quando eu salvo um novo nome é que todos os dados do .txt aparecem.

https://www.filepicker.io/api/file/bneSvF47TyqCA4DwRHLw

package uploadexemplo;
import java.awt.event.*;
import java.io.*;
import java.util.ArrayList;
import javax.swing.*;
import javax.swing.GroupLayout.Alignment;

public class NewJFrame extends javax.swing.JFrame {
     static java.io.File diretorio = new java.io.File("src/arquivo");
     boolean statusDir = diretorio.mkdir();
     public static String nomeDisciplina;
     ArrayList<String> lista = new ArrayList();
     public JButton btnSalvar;
     static FileReader fr;
     static String linha;
     static  BufferedReader br;
     static File arquivo = new File(diretorio, "ArquivoDisciplinas.txt");
     private static javax.swing.JComboBox jComboBox1;
     private static JTextField textField;

    public NewJFrame() {
        try {
            boolean statusArq = arquivo.createNewFile();

        } catch (IOException e) {
            e.printStackTrace(); 
        }

        initComponents();  
        btnSalvar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    salvar();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        });
    }   

    public static boolean Write(String Texto) {
        try {
            if (!arquivoExiste()) {
                arquivo.createNewFile();
            }
            FileWriter arq = new FileWriter(arquivo, true);
            PrintWriter gravarArq = new PrintWriter(arq);
            gravarArq.println(Texto);
            gravarArq.close();
            return true;

        } catch (IOException e) {
            System.out.println(e.getMessage());
            return false;
        }
    }

    public static void salvar() throws IOException {
        fr = new FileReader(arquivo);  
        br = new BufferedReader(fr);  
        linha = br.readLine();
        String print = textField.getText() + ";";

        while(linha != null){
            jComboBox1.addItem(linha);
            linha = br.readLine();
        }
        if (NewJFrame.Write(print)) {
            System.out.println("Arquivo salvo com sucesso!");
        } else {
            System.out.println("Erro ao salvar o arquivo!");
        }
    }

    public static boolean arquivoExiste() {
        return arquivo.exists();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }

    @SuppressWarnings("unchecked")
    private void initComponents() {
        jComboBox1 = new javax.swing.JComboBox();
        textField = new JTextField();
        textField.setColumns(10);
        btnSalvar = new JButton("Salvar");
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        layout.setHorizontalGroup(
            layout.createParallelGroup(Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(19)
                    .addGroup(layout.createParallelGroup(Alignment.LEADING)
                        .addComponent(jComboBox1, GroupLayout.PREFERRED_SIZE, 149, GroupLayout.PREFERRED_SIZE)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addGap(35)
                            .addComponent(btnSalvar)))
                    .addContainerGap(171, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(23)
                    .addGroup(layout.createParallelGroup(Alignment.BASELINE)
                        .addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addComponent(btnSalvar))
                    .addGap(76)
                    .addComponent(jComboBox1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(161, Short.MAX_VALUE))
        );
        getContentPane().setLayout(layout);

        pack();
    }// </editor-fold>
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.