Preciso de ajuda:Tenho um JFrame e ela está um JContentPane composto de muitos jButtons(Mesas de um restaurante) que tem cores diferentes para cada estado.Ao clicar na mesa abre uma nova janela(JFrame).Eu altero o estado dessa mesa,altero o status no BD,mas a cor da mesa não muda em tempo de execução.Já tentei várias opçoes(repaint() e nada.Agradeço desde já se puderem me ajudar…
Atualizar JFrame
6 Respostas
Vou colocar o código para esclarecer melhor :
package Visao;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import Controle.ControlaCores;
import Controle.ControleTelaContaAtual;
import Controle.ControleTelaFuncionario;
import Dao.DaoConta;
import Dao.DaoPraca;
import Modelo.Conta;
import Modelo.Mesa;
import Modelo.Praca;
import javax.swing.JInternalFrame;
import java.awt.Dimension;
import java.util.ArrayList;
public class TelaMesaPrincipal extends JFrame implements ActionListener {
private ControlaCores controlaCores ; // @jve:decl-index=0:
private JPanel buttonJPanel;
private JPanel buttonJPanel2;// panel to hold buttons
private JButton[] buttons; // array of buttons
private ArrayList<Mesa> arrayMesa;
private DaoPraca daoPraca; // @jve:decl-index=0:
private Mesa mesa;
private ControleTelaContaAtual controle13;
public TelaMesaPrincipal(){
super("Mesas");
initialize();
criarBotoes();
}
private void initialize(){
this.setExtendedState(Frame.MAXIMIZED_BOTH);
this.add(getJContentPane(),BorderLayout.CENTER);
this.add(getJContentPane2(),BorderLayout.SOUTH );
}
private JPanel getJContentPane() {
if (buttonJPanel == null) {
buttonJPanel = new JPanel();;
buttonJPanel.setLayout( new GridLayout( 8,9,5,5 ) );
arrayMesa= new ArrayList<Mesa>();
mesa = new Mesa();
daoPraca=new DaoPraca();
arrayMesa=daoPraca.getArrayMesa();
buttons = new JButton[ arrayMesa.size() ];
controlaCores = new ControlaCores();
int[]cores = controlaCores.Cores();
buttonJPanel.setBackground(new Color(cores[0],cores[1],cores[2]));
}
return buttonJPanel;
}
private JPanel getJContentPane2() {
if (buttonJPanel2 == null) {
buttonJPanel2 = new JPanel();// set up panel
buttonJPanel2.setBackground(new Color(255,255,255));
buttonJPanel2.setLayout( new GridLayout( 1,1,1,1 ));
Font fonteLabel = new Font("Serif", Font.BOLD, 17);
JLabel label = new JLabel("DISPONÍVEL:");
JLabel label2 = new JLabel("ABERTA:");
JLabel label3 = new JLabel("AGUARDANDO PAGAMENTO:");
JLabel label4 = new JLabel("RESERVADA:");
label.setFont(fonteLabel);
label2.setFont(fonteLabel);
label3.setFont(fonteLabel);
label4.setFont(fonteLabel);
label.setForeground(new Color (96,191,200));
label2.setForeground(new Color (20,190,1));
label3.setForeground(new Color(255,130,1));
label4.setForeground(Color.red);
buttonJPanel2.add(label);
buttonJPanel2.add(label2);
buttonJPanel2.add(label4);
buttonJPanel2.add(label3);
}
return buttonJPanel2;
}
public void actionPerformed(ActionEvent ev){
String comando = ev.getActionCommand();
TelaContaAtual telaContaAtual = new TelaContaAtual(Integer.parseInt(comando),this);
telaContaAtual.setVisible(true);
}
public void atualizarImagem() {
buttonJPanel.removeAll();
//buttonJPanel.revalidate();
buttonJPanel.repaint();
criarBotoes();
//buttonJPanel.revalidate();
buttonJPanel.repaint();
//buttonJPanel.revalidate();
//buttonJPanel.repaint();
}
public void criarBotoes(){
Font fonte = new Font("Arial Black", Font.BOLD, 45);
// create and add buttons
for ( int count = 0; count < buttons.length; count++ ){
mesa = arrayMesa.get(count);
buttons[ count ] = new JButton( ""+(mesa.getNumero()));
buttons[count].setFont(fonte);
buttons[ count ].setPreferredSize(new Dimension(50, 50));
buttons[count].addActionListener(this);
buttonJPanel.add( buttons[ count ] );
DaoConta daoConta = new DaoConta();
Conta conta=new Conta();
ArrayList<Conta>arrayConta = new ArrayList<Conta>();
arrayConta = daoConta.listarConta(mesa.getNumero());
String tip="";
if(arrayConta!=null)
for(int a=0;a<arrayConta.size();a++){
conta=(Conta) arrayConta.get(a);
if(conta.getCardapio().getGrupo().getPrecoVenda()==0){
tip=tip+(conta.getCardapio().getItensAdicionais().getNome()+" - "+conta.getQuantidade()+" - \n");
}else{
tip=tip+(conta.getCardapio().getGrupo().getNomeGrupo()+" -"+ String.valueOf(conta.getQuantidade()+" - \n"));
}
}
buttons[count].setToolTipText(tip);
// add button to panel
if(mesa.getStatus().equals("Aberta")){
buttons[count].setBackground(new Color (20,190,1));
}else if( mesa.getStatus().equals("Aguardando")){
buttons[count].setBackground(new Color(255,160,1));
}else if( mesa.getStatus().equals("Reservada")){
buttons[count].setBackground(Color.red);
}
} // end for
}
}
Qualquer desses JButton chama outra JFrame,para onde eu passei esta JFrame como parâmetro e na outra frame chamo o método
criarBotões(),mas o status (cor) não muda,mesmo tendo sido alterado no banco.
>
Por favor, ao postar códigos, siga essas dicas:
http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor
Tente editar seu tópico aqui de cima e corrigi-lo.
Você não tem que chamar o método criaBotoes(). Ele irá criar botões novos, não inseridos no JFrame.
Você deve alterar os botões já existentes. Crie um método atualizaBotoes() para isso, sem chamar dentro dele o “new”.
Boa dica.Estamos no caminho certo.Apenas um 'detalhe'.Ao passar o objeto 'mesa' como parâmetro para o
método atualizarImagem(Mesa mesa) , o numero da mesa(mesa.getNumero()) ,não é o mesmo do array de
botoes(button[mesa.getNumero()).Mudar a cor de outro botão.
Enfim preciso passar o indice do botao que foi clicado e aberta a nova tela.E ainda não consegui pegar esse índice.
Codigo da tela de mesas:
package Visao;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import Controle.ControlaCores;
import Controle.ControleTelaContaAtual;
import Controle.ControleTelaFuncionario;
import Dao.DaoConta;
import Dao.DaoPraca;
import Modelo.Conta;
import Modelo.Mesa;
import Modelo.Praca;
import javax.swing.JInternalFrame;
import java.awt.Dimension;
import java.util.ArrayList;
public class TelaMesaPrincipal extends JFrame implements ActionListener {
private ControlaCores controlaCores ; // @jve:decl-index=0:
private JPanel buttonJPanel;
private JPanel buttonJPanel2;// panel to hold buttons
private JButton[] buttons; // array of buttons
private ArrayList<Mesa> arrayMesa; // @jve:decl-index=0:
private DaoPraca daoPraca; // @jve:decl-index=0:
private Mesa mesa; // @jve:decl-index=0:
private ControleTelaContaAtual controle13;
public TelaMesaPrincipal(){
super("Mesas");
initialize();
}
private void initialize(){
this.setExtendedState(Frame.MAXIMIZED_BOTH);
this.add(getJContentPane(),BorderLayout.CENTER);
this.add(getJContentPane2(),BorderLayout.SOUTH );
}
private JPanel getJContentPane() {
if (buttonJPanel == null) {
buttonJPanel = new JPanel();;
buttonJPanel.setLayout( new GridLayout( 8,9,5,5 ) );
arrayMesa= new ArrayList<Mesa>();
mesa = new Mesa();
daoPraca=new DaoPraca();
arrayMesa=daoPraca.getArrayMesa();
buttons = new JButton[ arrayMesa.size() ];
controlaCores = new ControlaCores();
int[]cores = controlaCores.Cores();
buttonJPanel.setBackground(new Color(cores[0],cores[1],cores[2]));
Font fonte = new Font("Arial Black", Font.BOLD, 45);
// create and add buttons
for ( int count = 0; count < buttons.length; count++ ){
mesa = arrayMesa.get(count);
buttons[ count ] = new JButton( ""+(mesa.getNumero()));
buttons[count].setFont(fonte);
buttons[ count ].setPreferredSize(new Dimension(50, 50));
buttons[count].addActionListener(this);
buttonJPanel.add( buttons[ count ] );
DaoConta daoConta = new DaoConta();
Conta conta=new Conta();
ArrayList<Conta>arrayConta = new ArrayList<Conta>();
arrayConta = daoConta.listarConta(mesa.getNumero());
String tip="";
if(arrayConta!=null)
for(int a=0;a<arrayConta.size();a++){
conta=(Conta) arrayConta.get(a);
if(conta.getCardapio().getGrupo().getPrecoVenda()==0){
tip=tip+(conta.getCardapio().getItensAdicionais().getNome()+" - "+conta.getQuantidade()+" - \n");
}else{
tip=tip+(conta.getCardapio().getGrupo().getNomeGrupo()+" -"+ String.valueOf(conta.getQuantidade()+" - \n"));
}
}
buttons[count].setToolTipText(tip);
// add button to panel
if(mesa.getStatus().equals("Aberta"))
buttons[count].setBackground(new Color (20,190,1));
else if( mesa.getStatus().equals("Aguardando")){
buttons[count].setBackground(new Color(255,160,1));
}else if( mesa.getStatus().equals("Reservada"))
buttons[count].setBackground(Color.red);
} // end for
}
JOptionPane.showMessageDialog(null,"entrei no botoes");
return buttonJPanel;
}
private JPanel getJContentPane2() {
if (buttonJPanel2 == null) {
buttonJPanel2 = new JPanel();// set up panel
buttonJPanel2.setBackground(new Color(255,255,255));
buttonJPanel2.setLayout( new GridLayout( 1,1,1,1 ));
Font fonteLabel = new Font("Serif", Font.BOLD, 17);
JLabel label = new JLabel("DISPONÍVEL:");
JLabel label2 = new JLabel("ABERTA:");
JLabel label3 = new JLabel("AGUARDANDO PAGAMENTO:");
JLabel label4 = new JLabel("RESERVADA:");
label.setFont(fonteLabel);
label2.setFont(fonteLabel);
label3.setFont(fonteLabel);
label4.setFont(fonteLabel);
label.setForeground(new Color (96,191,200));
label2.setForeground(new Color (20,190,1));
label3.setForeground(new Color(255,130,1));
label4.setForeground(Color.red);
buttonJPanel2.add(label);
buttonJPanel2.add(label2);
buttonJPanel2.add(label4);
buttonJPanel2.add(label3);
}
return buttonJPanel2;
}
public void actionPerformed(ActionEvent ev){
String comando = ev.getActionCommand();
TelaContaAtual telaContaAtual = new TelaContaAtual(Integer.parseInt(comando),this);
telaContaAtual.setVisible(true);
}
public void atualizarImagem(Mesa mesa) {
DaoPraca daoPraca = new DaoPraca();
Mesa mesaStatus = new Mesa();
mesaStatus=daoPraca.buscarStatus(mesa.getNumero());
if(mesaStatus.getStatus().equals("Disponivel"))
buttons[mesa.getNumero()].setBackground(Color.BLUE);
}
}
Código da mesa clicada:
[code]package Visao;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Rectangle;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JLabel;
import javax.swing.JTextField;
import Controle.ControlaCores;
import Controle.ControleTelaContaAtual;
import Dao.DaoBebidas;
import Dao.DaoCardapio;
import Dao.DaoConta;
import Dao.DaoPraca;
import Modelo.Bebida;
import Modelo.Cardapio;
import Modelo.Conta;
import Modelo.Funcionario;
import Modelo.Grupo;
import Modelo.ItensAdicionais;
import Modelo.Mesa;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JInternalFrame;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.beans.PropertyVetoException;
import javax.swing.JComboBox;
public class TelaContaAtual extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton jButtonTransferir = null;
private JButton jButtonAgregar = null;
private JButton jButtonFechar = null;
private JButton jButtonCancelar = null;
private JButton jButtonSair = null;
private ControlaCores controlaCores; // @jve:decl-index=0:
private ControleTelaContaAtual controle4;
private JScrollPane jScrollPane = null;
private JTable jTableConsumo = null;
private JLabel jLabelTitulo = null;
private JLabel jLabelTotal = null;
private JTextField jTextFieldTotal = null;
private DefaultTableModel model;
private JButton jButtonIngresso = null;
private JButton jButtonGarrafa = null;
private ArrayList><Cardapio> arrayCardapio=null; // @jve:decl-index=0:
private ArrayList<Grupo> arrayGrupo=null;
private ArrayList<Mesa> arrayMesa = null; // @jve:decl-index=0:
private DaoPraca daoPraca; // @jve:decl-index=0:
private DaoBebidas daoBebidas=null;
private DaoConta daoConta=null;// @jve:decl-index=0:
private Mesa mesa; // @jve:decl-index=0:
private int numMesa;
private Conta conta; // @jve:decl-index=0:
private Grupo grupo; // @jve:decl-index=0:
private ItensAdicionais itensAdicionais;// @jve:decl-index=0:
private Cardapio cardapio; // @jve:decl-index=0:
private TelaMesaPrincipal telaMesaPrincipal;
private JLabel jLabelGarcon = null;
private JLabel jLabelData = null;
private JLabel jLabelHora = null;
private JInternalFrame jInternalFrame = null; // @jve:decl-index=0:visual-constraint="748,280"
private JPanel jContentPane1 = null;
private JButton jButtonExcluir = null;
private JInternalFrame jInternalFrame1 = null;
private JPanel jContentPane11 = null;
private JButton[] buttons;
private JComboBox jComboBox = null;
private JLabel jLabelText1 = null;
private JButton jButtonOk = null;
private JButton jButtonSair1 = null;
private JFrame jFrameTransfere = null; // @jve:decl-index=0:visual-constraint="761,111"
private JPanel jContentPane12 = null;
private JButton jButton = null;
private ArrayList<Conta> arrayConta=null;
/**
* This is the default constructor
*/
public TelaContaAtual(int numero,TelaMesaPrincipal telaMesaPrincipal) {
super();
numMesa=numero;
this.telaMesaPrincipal=telaMesaPrincipal;
initialize(numero);
listarConta(numero);
}
/**
* This method initializes this
*
* @return void
*/
private void initialize(int numero) {
this.setSize(702, 527);
this.setContentPane(getJContentPane(numero));
this.setTitle("Conta nº:"+ numero);
this.setLocationRelativeTo(this);
controle4= new ControleTelaContaAtual (this,null,null);
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane(int numero) {
if (jContentPane == null) {
Font fonte = new Font("Times New Roman",Font.BOLD,14);
jLabelHora = new JLabel();
jLabelHora.setBounds(new Rectangle(309, 10, 87, 16));
jLabelHora.setFont(fonte);
jLabelHora.setText("");
jLabelData = new JLabel();
jLabelData.setBounds(new Rectangle(167, 10, 139, 16));
jLabelData.setFont(fonte);
jLabelData.setText("");
jLabelGarcon = new JLabel();
jLabelGarcon.setBounds(new Rectangle(410, 10, 248, 16));
jLabelGarcon.setFont(fonte);
jLabelTotal = new JLabel();
jLabelTotal.setBounds(new Rectangle(292, 411, 76, 16));
jLabelTotal.setFont(fonte);
jLabelTotal.setText("TOTAL :");
jLabelTitulo = new JLabel();
jLabelTitulo.setBounds(new Rectangle(38, 10, 125, 16));
jLabelTitulo.setFont(fonte);
jLabelTitulo.setText("Conta Nº "+numero);
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJButtonTransferir(), null);
jContentPane.add(getJButtonAgregar(), null);
jContentPane.add(getJButtonFechar(), null);
jContentPane.add(getJButtonCancelar(), null);
jContentPane.add(getJButtonSair(), null);
controlaCores = new ControlaCores();
int[]cores = controlaCores.Cores();
jContentPane.setBackground(new Color(cores[0],cores[1],cores[2]));
jContentPane.add(getJScrollPane(), null);
jContentPane.add(jLabelTitulo, null);
jContentPane.add(jLabelTotal, null);
jContentPane.add(getJTextFieldTotal(), null);
jContentPane.add(getJButtonIngresso(),null);
jContentPane.add(getJButtonGarrafa(),null);
jContentPane.add(jLabelGarcon, null);
jContentPane.add(jLabelData, null);
jContentPane.add(jLabelHora, null);
jContentPane.add(getJButtonExcluir(), null);
jContentPane.add(getJInternalFrame1(), null);
arrayGrupo = new ArrayList<Grupo>();
daoBebidas = new DaoBebidas();
daoConta = new DaoConta();
daoPraca = new DaoPraca();
Mesa mesa = new Mesa();
mesa =daoPraca.buscarStatus(numero);
Funcionario func = new Funcionario();
func=daoConta.buscarFunc(numMesa);
jLabelGarcon.setText("Atendida pelo garçon : "+func.getNome());
arrayGrupo = daoBebidas.arrayGrupo();//cria um cardapio de opções
grupo = new Grupo();
itensAdicionais = new ItensAdicionais ();
cardapio = new Cardapio();
conta = new Conta();
int setLocal = 90;
final JButton jButtonGrupo[] = new JButton[arrayGrupo.size()];//determina o tamanho do array de botões
for (int a = 0;a < arrayGrupo.size();a++){//cria os botões
grupo=arrayGrupo.get(a);
jButtonGrupo[a] = new JButton(grupo.getNomeGrupo());
jButtonGrupo[a].setBounds(new Rectangle(485, setLocal, 189, 26));
jButtonGrupo[a].setName(grupo.getNomeGrupo());
jButtonGrupo[a].setText(grupo.getNomeGrupo());
jButtonGrupo[a].setToolTipText(String.valueOf(grupo.getPrecoVenda()));
if(mesa.getStatus().equals("Aguardando"))
jButtonGrupo[a].setEnabled(false);
jButtonGrupo[a].addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent ev) {
ativarBotoes(true);
final Grupo grupo = new Grupo();
Mesa mesa = new Mesa();
grupo.setNomeGrupo(ev.getActionCommand());
mesa.setNumero(numMesa);
cardapio.setGrupo(grupo);
itensAdicionais.setNome("");
cardapio.setItensAdicionais(itensAdicionais);
conta.setCardapio(cardapio);
conta.setMesa(mesa);
int quant =getQuantidade();
if(quant!=0){
[b] conta.setQuantidade(quant);
telaMesaPrincipal.atualizarImagem(mesa);
controle4.incluirItem(conta);[/b]
}else{
JOptionPane.showMessageDialog(null,"Não foi marcado nenhum item!");
}
}
});
jContentPane.add(jButtonGrupo[a]);//adiciona os botões ao painel
setLocal=setLocal+30;//desce para a próxima linha
}
}
return jContentPane;
}
public int getQuantidade(){
int quantidade=0;
TelaQuantidade telaq = new TelaQuantidade(null,"Tela Q",true);
telaq.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
telaq.setVisible(true);
telaq.dispose();
quantidade=telaq.getQuantidade();
return quantidade;
}
private JButton getJButtonTransferir() {
if (jButtonTransferir == null) {
jButtonTransferir = new JButton();
jButtonTransferir.setBounds(new Rectangle(111, 450,106, 29));
jButtonTransferir.setText("Transferir");
jButtonTransferir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
int proxMesa=getNumMesaT("Disponivel");
if(proxMesa!=0){
int continua = JOptionPane.showConfirmDialog(null,"Confirma a transferência da mesa "+numMesa+" para "+proxMesa+" ? ", "Continua (S/N)", JOptionPane.YES_NO_OPTION);
if(continua==1){
JOptionPane.showMessageDialog(null,"Não houve transferência de mesa!");
}else{
controle4.transferirConta(numMesa,proxMesa);
TelaContaAtual.this.dispose();
}
}else{
JOptionPane.showMessageDialog(null,"Não houve transferência de mesa!");
}
}
});
}
return jButtonTransferir;
}
/**
* This method initializes jButtonAgregar
*
* @return javax.swing.JButton
*/
private JButton getJButtonAgregar() {
if (jButtonAgregar == null) {
jButtonAgregar = new JButton();
jButtonAgregar.setBounds(new Rectangle(222, 450, 106, 29));
jButtonAgregar.setText("Agregar");
jButtonAgregar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
int proxMesa=getNumMesaT("Aberta");
if(proxMesa!=0){
int continua = JOptionPane.showConfirmDialog(null,"Confirma a agregação da mesa "+numMesa+" para "+proxMesa+" ? ", "Continua (S/N)", JOptionPane.YES_NO_OPTION);
if(continua==1){
JOptionPane.showMessageDialog(null,"Não houve agregação de mesas!");
}else{
controle4.transferirConta(numMesa,proxMesa);
TelaContaAtual.this.dispose();
}
}else{
JOptionPane.showMessageDialog(null,"Não houve agregação de mesas!");
}
}
});
}
return jButtonAgregar;
}
/**
* This method initializes jButtonFechar
*
* @return javax.swing.JButton
*/
private JButton getJButtonFechar() {
if (jButtonFechar == null) {
jButtonFechar = new JButton();
jButtonFechar.setBounds(new Rectangle(20, 450, 86, 29));
jButtonFechar.setText("Fechar");
}
return jButtonFechar;
}
/**
* This method initializes jButtonCancelar
*
* @return javax.swing.JButton
*/
private JButton getJButtonCancelar() {
if (jButtonCancelar == null) {
jButtonCancelar = new JButton();
jButtonCancelar.setBounds(new Rectangle(444, 450, 122, 29));
jButtonCancelar.setText("Cancelar Conta");
jButtonCancelar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
controle4.cancelarConta(numMesa);
}
});
}
return jButtonCancelar;
}
/**
* This method initializes jButtonSair
*
* @return javax.swing.JButton
*/
private JButton getJButtonSair() {
if (jButtonSair == null) {
jButtonSair = new JButton();
jButtonSair.setBounds(new Rectangle(571, 450, 85, 29));
jButtonSair.setText("Sair");
jButtonSair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
TelaContaAtual.this.dispose();
}
});
}
return jButtonSair;
}
public void setOuvinte4(ActionListener controleConta){
jButtonTransferir.addActionListener(controleConta);
jButtonAgregar.addActionListener(controleConta);
jButtonFechar.addActionListener(controleConta);
jButtonCancelar.addActionListener(controleConta);
jButtonExcluir.addActionListener(controleConta);
jButtonOk.addActionListener(controleConta);
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(20, 30, 460, 370));
jScrollPane.setViewportView(getJTableConsumo());
}
return jScrollPane;
}
/**
* This method initializes jTableConsumo
*
* @return javax.swing.JTable
*/
private JTable getJTableConsumo() {
daoBebidas = new DaoBebidas();
if (jTableConsumo == null) {
String []colunas = new String []{"NOME DO PRODUTO","QUANTIDADE","PREÇO UNIDADE","SUBTOTAL"};
String [][] linhas = new String [][]{};
model = new DefaultTableModel(linhas,colunas);
jTableConsumo = new JTable(model){
public boolean isCellEditable(int row,int column){
if ((column==0)||(column==1)||(column==2)||(column==3))
return false;
else
return true;
}
};
jTableConsumo.getColumnModel().getColumn(0).setPreferredWidth(120);
jTableConsumo.getColumnModel().getColumn(1).setPreferredWidth(8);
jTableConsumo.getColumnModel().getColumn(2).setPreferredWidth(50);
jTableConsumo.getColumnModel().getColumn(3).setPreferredWidth(3);
}
return jTableConsumo;
}
/**
* This method initializes jTextFieldTotal
*
* @return javax.swing.JTextField
*/
private JTextField getJTextFieldTotal() {
if (jTextFieldTotal == null) {
jTextFieldTotal = new JTextField();
jTextFieldTotal.setBounds(new Rectangle(377, 406, 103, 26));
jTextFieldTotal.setBackground(new Color(15,150,150));
}
return jTextFieldTotal;
}
/**
* This method initializes jButtonIngresso
*
* @return javax.swing.JButton
*/
private JButton getJButtonIngresso() {
if (jButtonIngresso == null) {
jButtonIngresso = new JButton();
jButtonIngresso.setBounds(new Rectangle(485, 30, 189, 26));
jButtonIngresso.setText("Ingresso");
DaoCardapio daoCardapio =new DaoCardapio();
itensAdicionais = new ItensAdicionais();
itensAdicionais=daoCardapio.buscarItem("Ingresso");
daoPraca = new DaoPraca();
mesa = new Mesa();
mesa =daoPraca.buscarStatus(numMesa);
if(mesa.getStatus().equals("Aguardando"))
jButtonIngresso.setEnabled(false);
jButtonIngresso.setToolTipText(String.valueOf(itensAdicionais.getValor()));
jButtonIngresso.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
ativarBotoes(true);
conta = new Conta();
cardapio = new Cardapio();
ItensAdicionais itensAdicionais = new ItensAdicionais();
Grupo grupo = new Grupo();
grupo.setNomeGrupo("");
itensAdicionais.setNome("Ingresso");
cardapio.setItensAdicionais(itensAdicionais);
conta.setCardapio(cardapio);
mesa = new Mesa();
mesa.setNumero(numMesa);
conta.setMesa(mesa);
conta.setQuantidade(getQuantidade());
controle4.incluirItem(conta);
}
});
}
return jButtonIngresso;
}
private JButton getJButtonGarrafa() {
if (jButtonGarrafa == null) {
jButtonGarrafa = new JButton();
jButtonGarrafa.setBounds(new Rectangle(485, 60, 189, 26));
jButtonGarrafa.setText("Garrafa");
daoPraca = new DaoPraca();
mesa = new Mesa();
mesa =daoPraca.buscarStatus(numMesa);
if(mesa.getStatus().equals("Aguardando"))
jButtonGarrafa.setEnabled(false);
jButtonGarrafa.setToolTipText("0.00");
jButtonGarrafa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
ativarBotoes(true);
conta = new Conta();
cardapio = new Cardapio();
itensAdicionais = new ItensAdicionais();
itensAdicionais.setNome("Garrafa");
cardapio.setItensAdicionais(itensAdicionais);
conta.setCardapio(cardapio);
mesa = new Mesa();
mesa.setNumero(numMesa);
conta.setMesa(mesa);
conta.setQuantidade(getQuantidade());
controle4.incluirItem(conta);
}
});
}
return jButtonGarrafa;
}
public void escreverConta(ArrayList<Conta> arrayConta){
conta =new Conta();
grupo = new Grupo();
double totalConta=0,subTotal=0 ;
if(arrayConta.size()>0){
conta=(Conta) arrayConta.get(0);
SimpleDateFormat hf =new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat df =new SimpleDateFormat("dd/MM/yyyy");
jLabelData.setText("Aberta em "+df.format(conta.getDataConta()));
jLabelHora.setText("as "+hf.format(conta.getHoraConta()));
}else{
ativarBotoes(false);
}
model.setNumRows(0);
model.isCellEditable(0,3);
if(arrayConta!=null)
for(int a=0;a<arrayConta.size();a++){
conta=(Conta) arrayConta.get(a);
if(conta.getCardapio().getGrupo().getPrecoVenda()==0){
subTotal=+conta.calcularTotal(conta.getQuantidade(),conta.getCardapio().getItensAdicionais().getValor());
model.addRow(new String[]{conta.getCardapio().getItensAdicionais().getNome(),String.valueOf(conta.getQuantidade()),String.valueOf(conta.getCardapio().getItensAdicionais().getValor()),String.valueOf(subTotal)});
}else{
subTotal=+conta.calcularTotal(conta.getQuantidade(),conta.getCardapio().getGrupo().getPrecoVenda());
model.addRow(new String[]{conta.getCardapio().getGrupo().getNomeGrupo(),String.valueOf(conta.getQuantidade()),String.valueOf(conta.getCardapio().getGrupo().getPrecoVenda()),String.valueOf(subTotal)});
}
totalConta=totalConta+subTotal;
}
Font fonte = new Font("Arial Black",Font.BOLD,15);
jTextFieldTotal.setFont(fonte);
jTextFieldTotal.setText(String.valueOf(totalConta));
}
public int getLinhaSelecionada(){
int linhaSelecionada= jTableConsumo.getSelectedRow() ;
return linhaSelecionada;
}
public void ativarBotoes(boolean estado){
jButtonTransferir.setEnabled(estado);
jButtonAgregar.setEnabled(estado);
jButtonFechar.setEnabled(estado);
jButtonCancelar.setEnabled(estado);
jButtonExcluir.setEnabled(estado);
}
public Conta lerConta(int linha){
conta = new Conta();
grupo = new Grupo();
mesa = new Mesa();
String nome="";
int quantidade=-1;
try{
nome = (String)model.getValueAt(linha,0);
quantidade=(Integer.parseInt((String)model.getValueAt(linha,1)));
grupo.setNomeGrupo(nome);
cardapio.setGrupo(grupo);
mesa.setNumero(numMesa);
conta.setMesa(mesa);
conta.setCardapio(cardapio) ;
conta.setQuantidade(quantidade);
}catch(NumberFormatException ev){
}
return conta;
}
/**
* This method initializes jButtonExcluir
*
* @return javax.swing.JButton
*/
private JButton getJButtonExcluir() {
if (jButtonExcluir == null) {
jButtonExcluir = new JButton();
jButtonExcluir.setBounds(new Rectangle(333, 450, 106, 29));
jButtonExcluir.setText("Excluir Item");
}
return jButtonExcluir;
}
/**
* This method initializes jInternalFrame1
*
* @return javax.swing.JInternalFrame
*/
private JInternalFrame getJInternalFrame1() {
if (jInternalFrame1 == null) {
jInternalFrame1 = new JInternalFrame("Transferência");
jInternalFrame1.setBounds(new Rectangle(557, 383, 51, 34));
jInternalFrame1.setContentPane(getJContentPane11());
jInternalFrame1.setVisible(true);
jInternalFrame1.setBackground(new Color(173,200,178));
jInternalFrame1.setVisible(false);
}
return jInternalFrame1;
}
/**
* This method initializes jContentPane11
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane11() {
if (jContentPane11 == null) {
jLabelText1 = new JLabel();
jLabelText1.setBounds(new Rectangle(32, 0, 152, 36));
jLabelText1.setText("Selecione a mesa.");
jContentPane11 = new JPanel();
jContentPane11.setLayout(null);
jContentPane11.add(getJComboBox(), null);
jContentPane11.add(jLabelText1, null);
jContentPane11.add(getJButtonOk(), null);
jContentPane11.add(getJButtonSair1(), null);
}
return jContentPane11;
}
public void criarButtons(String font){
Font fonte = new Font(font, Font.BOLD, 45);
arrayMesa= new ArrayList><Mesa>();
mesa = new Mesa();
daoPraca=new DaoPraca();
arrayMesa=daoPraca.getArrayMesaStatus("Aberta");
buttons = new JButton[ arrayMesa.size() ];
// create and add buttons
for ( int count = 0; count < arrayMesa.size(); count++ ){
mesa = arrayMesa.get(count);
buttons[ count ] = new JButton( ""+(mesa.getNumero()));
buttons[count].setFont(fonte);
buttons[ count ].setPreferredSize(new Dimension(50, 50));
buttons[count].addActionListener(controle4);
jContentPane11.add( buttons[ count ] );
} // end for
this.repaint();
}
/**
* This method initializes jComboBox
*
* @return javax.swing.JComboBox
*/
private JComboBox getJComboBox() {
if (jComboBox == null) {
jComboBox = new JComboBox();
jComboBox.setBounds(new Rectangle(36, 35, 93, 29));
arrayMesa= new ArrayList<Mesa>();
mesa = new Mesa();
daoPraca=new DaoPraca();
arrayMesa=daoPraca.getArrayMesa();
jComboBox.addItem("Selecione");
for ( int count = 0; count < arrayMesa.size(); count++ ){
mesa = arrayMesa.get(count);
jComboBox.addItem(mesa.getNumero());
mesa.setNumero(jComboBox.getSelectedIndex());
} // end for
}
return jComboBox;
}
/**
* This method initializes jButtonOk
*
* @return javax.swing.JButton
*/
private JButton getJButtonOk() {
if (jButtonOk == null) {
jButtonOk = new JButton();
jButtonOk.setBounds(new Rectangle(21, 75, 73, 29));
jButtonOk.setText("Ok");
}
return jButtonOk;
}
/**
* This method initializes jButtonSair1
*
* @return javax.swing.JButton
*/
private JButton getJButtonSair1() {
if (jButtonSair1 == null) {
jButtonSair1 = new JButton();
jButtonSair1.setBounds(new Rectangle(100, 75, 70, 29));
jButtonSair1.setText("Sair");
jButtonSair1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jFrameTransfere.dispose();
}
});
}
return jButtonSair1;
}
public void ativarInternalFrame(){
jInternalFrame1.setVisible(true);
jInternalFrame1.moveToFront();
}
/**
* This method initializes jFrameTransfere
*
* @return javax.swing.JFrame
*/
public JFrame getJFrameTransfere() {
if (jFrameTransfere == null) {
jFrameTransfere = new JFrame();
jFrameTransfere.setLocation(140, 490);
jFrameTransfere.setSize(new Dimension(190, 151));
jFrameTransfere.setContentPane(getJContentPane11());
jFrameTransfere.setVisible(true);
}
return jFrameTransfere;
}
public void listarConta(int numeroConta){
daoConta = new DaoConta();
arrayConta = new ArrayList<Conta>();
arrayConta = daoConta.listarConta(numeroConta);
escreverConta(arrayConta);
}
public int getNumMesaT(String opcao){
int nmT=0;
TelaTransferencia telat = new TelaTransferencia(null,"TelaT",true,opcao);
telat.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
telat.setVisible(true);
telat.dispose();
nmT=telat.getQuantidade();
return nmT;
}
public Mesa getNumMesa() {
mesa.setNumero(numMesa);
return mesa;
}
}
Resolvi boa parte do problema.
Passei o indice como parâmetro para a nova tela.Quando precisei retornei
esse índice para o método atualizarImagem(int indice,Mesa mesa).
Voçê, que conhece boas técnicas de programação, achou isso 'gambiarra'?
Muito obrigado.Mesmo.De coração.
public void actionPerformed(ActionEvent ev){
int indice=-1;
for ( int count = 0; count < buttons.length; count++ ){
if(ev.getSource()==buttons[count])
indice =count;
}
TelaContaAtual telaContaAtual = new TelaContaAtual(Integer.parseInt(ev.getActionCommand()),this,indice);
telaContaAtual.setVisible(true);
}
public void atualizarImagem(int indice,Mesa mesa) {
DaoPraca daoPraca = new DaoPraca();
Mesa mesaStatus = new Mesa();
mesaStatus=daoPraca.buscarStatus(mesa.getNumero());
if(mesaStatus.getStatus().equals("Disponivel"))
buttons[indice].setBackground(new Color (20,190,1));
if(mesaStatus.getStatus().equals("Aberta"))
buttons[indice].setBackground(Color.BLUE);
}
Resolvi boa parte do problema.
Passei o indice como parâmetro para a nova tela.Quando precisei retornei
esse índice para o método atualizarImagem(int indice,Mesa mesa).
Voçê, que conhece boas técnicas de programação, achou isso 'gambiarra'?
Muito obrigado.Mesmo.De coração.
public void actionPerformed(ActionEvent ev){
int indice=-1;
for ( int count = 0; count < buttons.length; count++ ){
if(ev.getSource()==buttons[count])
indice =count;
}
TelaContaAtual telaContaAtual = new TelaContaAtual(Integer.parseInt(ev.getActionCommand()),this,indice);
telaContaAtual.setVisible(true);
}
public void atualizarImagem(int indice,Mesa mesa) {
DaoPraca daoPraca = new DaoPraca();
Mesa mesaStatus = new Mesa();
mesaStatus=daoPraca.buscarStatus(mesa.getNumero());
if(mesaStatus.getStatus().equals("Disponivel"))
buttons[indice].setBackground(new Color (20,190,1));
if(mesaStatus.getStatus().equals("Aberta"))
buttons[indice].setBackground(Color.BLUE);
}