how to pass data from a Double Chained List to a graphical interface?

Asked

Viewed 60 times

0

I am very beginner in programming and I am coding this program for a job.

I have a "Filmoteca", I need to navigate through a list chained with a graphical interface. I don’t know how I can navigate with ordered data. I put the window print with the classes. If anyone can help me, please?

Main Class

public class Filme {

    private String titulo;
    private String sinopse;
    private String produtora;
    private String atorPrincipal;
    private String estilo;
    private String caminhoDoArquivoDaCapa;

    private Filme antTitulo;
    private Filme proxTitulo;

    protected final static String SEPARADOR = ";";

    public Filme(String titulo, String sinopse, String produtora, String atorPrincipal, String estilo,
            String caminhoDoArquivoDaCapa) {

        this.titulo = titulo;
        this.sinopse = sinopse;
        this.produtora = produtora;
        this.atorPrincipal = atorPrincipal;
        this.estilo = estilo;
        this.caminhoDoArquivoDaCapa = caminhoDoArquivoDaCapa;

        this.antTitulo = null;
        this.proxTitulo = null;
    }

    public Filme() {
        super();
        // TODO Auto-generated constructor stub
    }

    public void imprimeFilme() {
        System.out.println("Filme: " + titulo);
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getSinopse() {
        return sinopse;
    }

    public void setSinopse(String sinopse) {
        this.sinopse = sinopse;
    }

    public String getProdutora() {
        return produtora;
    }

    public void setProdutora(String produtora) {
        this.produtora = produtora;
    }

    public String getAtorPrincipal() {
        return atorPrincipal;
    }

    public void setAtorPrincipal(String atorPrincipal) {
        this.atorPrincipal = atorPrincipal;
    }

    public String getEstilo() {
        return estilo;
    }

    public void setEstilo(String estilo) {
        this.estilo = estilo;
    }

    public String getCaminhoDoArquivoDaCapa() {
        return caminhoDoArquivoDaCapa;
    }

    public void setCaminhoDoArquivoDaCapa(String caminhoDoArquivoDaCapa) {
        this.caminhoDoArquivoDaCapa = caminhoDoArquivoDaCapa;
    }

    public Filme getAntTitulo() {
        return antTitulo;
    }

    public void setAntTitulo(Filme antTitulo) {
        this.antTitulo = antTitulo;
    }

    public Filme getProxTitulo() {
        return proxTitulo;
    }

    public void setProxTitulo(Filme proxTitulo) {
        this.proxTitulo = proxTitulo;
    }

}

Double Chained List

public class Filmoteca {

    private Filme primeiroTitulo;
    private Filme ultimoTitulo;
    private Filme atual;

    public Filmoteca() {
        this.primeiroTitulo = null;
        this.ultimoTitulo = null;
        this.atual = null;
    }

    public Boolean estaVazioFilme() {
        return (this.primeiroTitulo == null);

    }

    public void insereOrdenadoPorTitulo(Filme filme) {

        Filme aux, anterior;

        if (this.estaVazioFilme()) {
            this.primeiroTitulo = this.ultimoTitulo = filme;
            return;
        }

        if (filme.getTitulo().compareTo(this.primeiroTitulo.getTitulo()) < 0) {
            filme.setProxTitulo(this.primeiroTitulo);
            this.primeiroTitulo.setAntTitulo(filme);
            this.primeiroTitulo = filme;
            return;
        }

        anterior = this.primeiroTitulo;
        for (aux = this.primeiroTitulo.getProxTitulo(); aux != null
                && filme.getTitulo().compareTo(aux.getTitulo()) > 0; aux = aux.getProxTitulo()) {
            anterior = aux;
        }

        anterior.setProxTitulo(filme);
        filme.setAntTitulo(anterior);
        filme.setProxTitulo(aux);

        if (filme.getProxTitulo() == null) {
            this.ultimoTitulo = filme;
        } else {
            aux.setAntTitulo(filme);
        }
    }

    public String imprimeFilmesTitulo() {
        for (Filme qtsFilme = this.primeiroTitulo; qtsFilme != null; qtsFilme = qtsFilme.getProxTitulo()) {
            qtsFilme.imprimeFilme();
        }
        return null;
    }
}

Class with Save Movie methods in a txt file, and to read the file and insert the double-chained list.

public class ManipulaArquivo extends Filme {

    public static File selecionarArquivo() {
        File arquivo = new File("Filmes.txt");
        try {

            if (!arquivo.exists()) {

                arquivo.createNewFile();
            }
        } catch (IOException e) {

            e.printStackTrace();
        }
        return arquivo;
    }

    public String Salvar() {

        try {

            FileWriter fw = new FileWriter(selecionarArquivo(), true);
            PrintWriter pw = new PrintWriter(fw);

            pw.println(this.getTitulo() + SEPARADOR + this.getEstilo() + SEPARADOR + this.getAtorPrincipal() + SEPARADOR
                    + this.getProdutora() + SEPARADOR + this.getSinopse() + SEPARADOR
                    + this.getCaminhoDoArquivoDaCapa());

            pw.flush();
            pw.close();
            fw.close();

        } catch (IOException e) {

            e.printStackTrace();
        }

        return "Salvo com sucesso!";

    }

    public String RecuperaPorTitulo() {

        Filmoteca filmoteca = new Filmoteca();

        try {

            FileReader fr = new FileReader(selecionarArquivo());
            BufferedReader br = new BufferedReader(fr);

            String line;
            while ((line = br.readLine()) != null) {
                final String[] campos = line.split(SEPARADOR);
                final Filme filme = new Filme(campos[0], campos[1], campos[2], campos[3], campos[4], campos[5]);
                filmoteca.insereOrdenadoPorTitulo(filme);
            }

            fr.close();
            br.close();

        } catch (IOException e) {

        }
        return filmoteca.imprimeFilmesTitulo();

    }

}

Graphical interface for navigating

public class VisualizarFilme extends Filme {

    JFrame frmFilmoteca;
    private JTextField textTitulo;
    private JTextField textEstilo;
    private JTextField textAtor;
    private JTextField textProdutora;
    private JTextField textSinopse;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    VisualizarFilme window = new VisualizarFilme();
                    window.frmFilmoteca.setVisible(true);

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

    public VisualizarFilme() {
        initialize();
    }

    private void initialize() {
        frmFilmoteca = new JFrame();
        frmFilmoteca.setTitle("Filmoteca");
        frmFilmoteca.setBounds(100, 100, 747, 356);
        frmFilmoteca.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frmFilmoteca.getContentPane().setLayout(null);

        JLabel Label_imagem = new JLabel("");
        Label_imagem.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
        Label_imagem.setBounds(557, 27, 161, 220);
        frmFilmoteca.getContentPane().add(Label_imagem);

        JLabel Label_Titulo = new JLabel("T\u00EDtulo");
        Label_Titulo.setFont(new Font("Arial", Font.PLAIN, 18));
        Label_Titulo.setBounds(61, 27, 56, 14);
        frmFilmoteca.getContentPane().add(Label_Titulo);

        JLabel Label_Estilo = new JLabel("Estilo");
        Label_Estilo.setFont(new Font("Arial", Font.PLAIN, 18));
        Label_Estilo.setBounds(68, 65, 49, 14);
        frmFilmoteca.getContentPane().add(Label_Estilo);

        JLabel Label_AtorPrincipal = new JLabel("Ator Principal");
        Label_AtorPrincipal.setFont(new Font("Arial", Font.PLAIN, 18));
        Label_AtorPrincipal.setBounds(10, 109, 107, 14);
        frmFilmoteca.getContentPane().add(Label_AtorPrincipal);

        JLabel Label_Produtora = new JLabel("Produtora");
        Label_Produtora.setFont(new Font("Arial", Font.PLAIN, 18));
        Label_Produtora.setBounds(32, 153, 85, 14);
        frmFilmoteca.getContentPane().add(Label_Produtora);

        JLabel Label_Sinopse = new JLabel("Sinopse");
        Label_Sinopse.setFont(new Font("Arial", Font.PLAIN, 18));
        Label_Sinopse.setBounds(51, 197, 66, 14);
        frmFilmoteca.getContentPane().add(Label_Sinopse);

        textTitulo = new JTextField();
        textTitulo.setColumns(10);
        textTitulo.setBounds(127, 23, 412, 26);
        frmFilmoteca.getContentPane().add(textTitulo);

        textEstilo = new JTextField();
        textEstilo.setColumns(10);
        textEstilo.setBounds(127, 61, 412, 26);
        frmFilmoteca.getContentPane().add(textEstilo);

        textAtor = new JTextField();
        textAtor.setColumns(10);
        textAtor.setBounds(127, 105, 412, 26);
        frmFilmoteca.getContentPane().add(textAtor);

        textProdutora = new JTextField();
        textProdutora.setColumns(10);
        textProdutora.setBounds(127, 149, 412, 26);
        frmFilmoteca.getContentPane().add(textProdutora);

        textSinopse = new JTextField();
        textSinopse.setColumns(10);
        textSinopse.setBounds(127, 193, 412, 54);
        frmFilmoteca.getContentPane().add(textSinopse);

        JButton bntAnterior = new JButton("Anterior");
        bntAnterior.setFont(new Font("Arial", Font.PLAIN, 18));
        bntAnterior.setBounds(88, 269, 107, 34);
        frmFilmoteca.getContentPane().add(bntAnterior);

        JButton bntExclusão = new JButton("Exclus\u00E3o");
        bntExclusão.setFont(new Font("Arial", Font.PLAIN, 18));
        bntExclusão.setBounds(230, 269, 107, 34);
        frmFilmoteca.getContentPane().add(bntExclusão);

        JButton bntNovo = new JButton("Novo");
        bntNovo.setFont(new Font("Arial", Font.PLAIN, 18));
        bntNovo.setBounds(373, 269, 107, 34);
        frmFilmoteca.getContentPane().add(bntNovo);

        JButton bntProximo = new JButton("Pr\u00F3ximo");
        bntProximo.setFont(new Font("Arial", Font.PLAIN, 18));
        bntProximo.setBounds(514, 269, 107, 34);
        frmFilmoteca.getContentPane().add(bntProximo);

    }
}
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.