Preciso de ajuda! Usanto as bibliotecas: java.awt.* java.swing.* e java.awt.event.*

5 respostas
java
T

tenho que fazer uma tela de cadastro com uma capacidade de 20 pessoas (um vetor de 20 posições) e esses são os requisitos do botões:
quando a tela aparecer: Desabilita o botão Novo, Excluir e Editar, e registra que está inserindo
Botão Novo: Desabilita o botão Novo e Editar, limpa os TextFields e registra que está inserindo
Botão Salvar: Verifica se está inserindo ou editando. Caso esteja inserindo, insere um novo elemento no vetor. Caso esteja editando, salva os dados na posição atual do vetor. Desabilita os botões Salvar e Cancelar e habilita os botões Novo, Editar e Excluir

Botão Cancelar: Não salva nada no vetor, apresenta os dados da posição atual do vetor e Desabilita os botões Salvar e Cancelar e habilita os botões Novo, Editar e Excluir

Botão Editar: Desabilita o botão Novo, Editar e Excluir, habilita os botões Salvar e Cancelar e registra que está Editando

5 Respostas

S

Para habilitar ou desabilitar um componente, é só usar o método setEnabled do mesmo.

Exemplo:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;

@SuppressWarnings("serial")
public class TelaExemplo extends JFrame {

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            TelaExemplo tela = new TelaExemplo();
            tela.setDefaultCloseOperation(EXIT_ON_CLOSE);
            tela.setLocationRelativeTo(null);
            tela.setVisible(true);
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    /*
     * Enumeração para controlar o estado da tela
     */
    private static enum Estado {

        CONSULTANDO,

        INCLUINDO,

        EDITANDO;
    }

    private JButton buttonNovo;
    private JButton buttonEditar;
    private JButton buttonSalvar;
    private JButton buttonCancelar;
    private JButton buttonExcluir;

    public TelaExemplo() {
        setMinimumSize(new Dimension(480, 320));

        Container container = getContentPane();
        container.setLayout(new BorderLayout());

        container.add(createButtonPanel(), BorderLayout.NORTH);
        pack();
    }

    private JPanel createButtonPanel() {
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));

        buttonNovo = new JButton("Novo");
        buttonNovo.addActionListener(event -> novo());
        panel.add(buttonNovo);

        buttonEditar = new JButton("Editar");
        buttonEditar.addActionListener(event -> editar());
        panel.add(buttonEditar);

        buttonSalvar = new JButton("Salvar");
        buttonSalvar.addActionListener(event -> salvar());
        panel.add(buttonSalvar);

        buttonCancelar = new JButton("Cancelar");
        buttonCancelar.addActionListener(event -> cancelar());
        panel.add(buttonCancelar);

        buttonExcluir = new JButton("Excluir");
        buttonExcluir.addActionListener(event -> excluir());
        panel.add(buttonExcluir);

        return panel;
    }

    @Override
    public void setVisible(boolean visible) {
        super.setVisible(visible);
        if (visible) {
            novo();
        }
    }

    private void novo() {
        atualizarEstado(Estado.INCLUINDO);
    }

    private void editar() {
        atualizarEstado(Estado.EDITANDO);
    }

    private void salvar() {
        atualizarEstado(Estado.CONSULTANDO);
    }

    private void cancelar() {
        atualizarEstado(Estado.CONSULTANDO);
    }

    private void excluir() {
        atualizarEstado(Estado.CONSULTANDO);
    }

    /*
     * Atualiza os campos com base no estado da tela
     */
    private void atualizarEstado(Estado estado) {
        String titulo = "Tela de Exemplo";
        boolean novo = true;
        boolean editar = true;
        boolean salvar = true;
        boolean cancelar = true;
        boolean excluir = true;
        switch (estado) {
            case INCLUINDO:
                novo = false;
                editar = false;
                excluir = false;
                titulo += " - INCLUINDO";
                break;
            case EDITANDO:
                novo = false;
                editar = false;
                excluir = false;
                titulo += " - EDITANDO";
                break;
            case CONSULTANDO:
                cancelar = false;
                salvar = false;
                break;
        }
        setTitle(titulo);
        buttonNovo.setEnabled(novo);
        buttonEditar.setEnabled(editar);
        buttonSalvar.setEnabled(salvar);
        buttonCancelar.setEnabled(cancelar);
        buttonExcluir.setEnabled(excluir);
    }
}
T

mas como faço para salvar?

D
import java.save.Jesus;


Jesus.save(oQueQuiserSalvar);
S

Conforme seu enunciado:

Verifica se está inserindo ou editando.
Caso esteja inserindo, insere um novo elemento no vetor.
Caso esteja editando, salva os dados na posição atual do vetor.

T

obg

Criado 7 de agosto de 2019
Ultima resposta 7 de ago. de 2019
Respostas 5
Participantes 3