Preciso de ajuda! Usanto as bibliotecas: java.awt.* java.swing.* e java.awt.event.*
5 respostas
java
T
this22
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
Para habilitar ou desabilitar um componente, é só usar o método setEnabled do mesmo.
Exemplo:
importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.UIManager;@SuppressWarnings("serial")publicclassTelaExemploextendsJFrame{publicstaticvoidmain(String[]args){try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());TelaExemplotela=newTelaExemplo();tela.setDefaultCloseOperation(EXIT_ON_CLOSE);tela.setLocationRelativeTo(null);tela.setVisible(true);}catch(Throwablet){t.printStackTrace();}}/* * Enumeração para controlar o estado da tela */privatestaticenumEstado{CONSULTANDO,INCLUINDO,EDITANDO;}privateJButtonbuttonNovo;privateJButtonbuttonEditar;privateJButtonbuttonSalvar;privateJButtonbuttonCancelar;privateJButtonbuttonExcluir;publicTelaExemplo(){setMinimumSize(newDimension(480,320));Containercontainer=getContentPane();container.setLayout(newBorderLayout());container.add(createButtonPanel(),BorderLayout.NORTH);pack();}privateJPanelcreateButtonPanel(){JPanelpanel=newJPanel(newFlowLayout(FlowLayout.LEFT,0,0));buttonNovo=newJButton("Novo");buttonNovo.addActionListener(event->novo());panel.add(buttonNovo);buttonEditar=newJButton("Editar");buttonEditar.addActionListener(event->editar());panel.add(buttonEditar);buttonSalvar=newJButton("Salvar");buttonSalvar.addActionListener(event->salvar());panel.add(buttonSalvar);buttonCancelar=newJButton("Cancelar");buttonCancelar.addActionListener(event->cancelar());panel.add(buttonCancelar);buttonExcluir=newJButton("Excluir");buttonExcluir.addActionListener(event->excluir());panel.add(buttonExcluir);returnpanel;}@OverridepublicvoidsetVisible(booleanvisible){super.setVisible(visible);if(visible){novo();}}privatevoidnovo(){atualizarEstado(Estado.INCLUINDO);}privatevoideditar(){atualizarEstado(Estado.EDITANDO);}privatevoidsalvar(){atualizarEstado(Estado.CONSULTANDO);}privatevoidcancelar(){atualizarEstado(Estado.CONSULTANDO);}privatevoidexcluir(){atualizarEstado(Estado.CONSULTANDO);}/* * Atualiza os campos com base no estado da tela */privatevoidatualizarEstado(Estadoestado){Stringtitulo="Tela de Exemplo";booleannovo=true;booleaneditar=true;booleansalvar=true;booleancancelar=true;booleanexcluir=true;switch(estado){caseINCLUINDO:novo=false;editar=false;excluir=false;titulo+=" - INCLUINDO";break;caseEDITANDO:novo=false;editar=false;excluir=false;titulo+=" - EDITANDO";break;caseCONSULTANDO:cancelar=false;salvar=false;break;}setTitle(titulo);buttonNovo.setEnabled(novo);buttonEditar.setEnabled(editar);buttonSalvar.setEnabled(salvar);buttonCancelar.setEnabled(cancelar);buttonExcluir.setEnabled(excluir);}}
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.