Interface teatro

oie galera. gostaria da ajuda de vocês, pois tenho que fazer um trabalho final pra faculdade, é o seguinte, tenho que fazer uma interface com os lugares de um teatro, onde motrar o palco as cadeiras, o cliente seleciona as cadeiras e compra o ingresso. gostaria de saber se alguém pode me ajudar, ou indicar algum artigo que possa me dá uma ideia… se possivel fazer isso dinanmicamente…

obrigado

kleiton

Interessante a idéia, tanto a sua como a do LuizRocha.

Eu começaria pelo mesmo passo que o Luiz disse, embora eu prefira trabalhar com layout null.

É importante vc pensar bem em todas as funcionalidades de sua tela antes de começar a construí-la, pois de repente ao invés de utilizar um JPanel como a interface das cadeiras e do palco você poderia utilizar o JDialog que possui alguns recursos que a JPanel não tem. (modal por exemplo)

Uma dica: é importante você separar bem todos os métodos e criar ‘gets’ para cada objeto visual da tela, fazendo uso de ‘lazzy’ e definindo todos atributos e listeners dentro de cada get do objeto.

Eu faço uso do awt/swing diariamente e posso te dizer que no começo foi bem chato pois eu não imaginava que precisaria alterar tanto as mesmas telas e fazendo uso dos ‘gets’ para cada objeto consegui facilitar bastante qualquer alteração que se fizer necessária no visual da tela.

qq coisa tamos aê!
boa sorte.

Se você quiser algo realmente sofisticado você pode criar um canvas e desenhar o teatro com Java 2D (mostrando as cadeiras vazias e ocupadas com cores diferentes). Gerenciando os cliques do usuário você poderia quando ele clicasse em uma cadeira abrir uma interface para a venda ou mostrar quem já estava ocupando…

Daria trabalho, mas ficaria show de bola!!!

Hmm… Estranha, essa idéia de mostrar o palco e as cadeiras…

Mas vamos lá, vamos ver se eu posso ajudar:

Você sabe que terá, antes de tudo, que criar a classe Cadeira; que terá como atributo, entre outras variáveis, a “boolean vendida”, que será false por default e true quando o usuário a comprasse - endo por objetivo impedir que o usuário compre uma cadeira cuja variável vendida seja true.

Normalmente, eu projetaria uma janela principal do projeto e uma mais simples, voltada exclusivamente para a venda de cadeiras e acessada pelo clique num botão, mas isso quem sabe é você.

Eu colocaria num lado dessa janela de vendas uma JComboBox contendo o número das cadeiras ainda não vendidas. Quando o usário clicasse num ítem da JComboBox a cadeira correspondente seria vendida (talvez passando por um JDialog para confirmação) e o ítem seria removido da JComboBox.

Mas você disse: “onde motrar o palco as cadeiras, o cliente seleciona as cadeiras e compra o ingresso.”. Logo, supõe-se que as cadeiras venham a “aparecer” na janela. Isso é possível. :stuck_out_tongue:

Eu faria o seguinte: Nessa janela de vendas eu organizaria o Layout dela através de um BorderLayout, o qual contivesse, no norte, a figura do palco (se é que foi isso que eu entendi bem :? ) ; no centro, um painel cujo LayoutManager é GridLayout. Nesse grid (cujo tamanho você decide) você coloca um botão em cada célula, de modo que cada botão tivesse a figura de uma cadeira e estivesse relacionado a um objeto da classe Cadeira. Você pode fazer isso colocando mais um atributo para a classe Cadeira: um JButton com a figura da tal. Assim, nessa janela, você criaria um array de Cadeira exatamente do tamanho equivalente ao número de células do Layout. Por exemplo:

JPanel painelDasCadeiras=new JPanel() ;
painelDasCadeiras.setLayout(new GridLayout(5,5)) ; //grade de 5x5.

Cadeira bancos[] = new Cadeira[25] ;

for(int i=0;i<bancos.length;i++){
___banco[i]=new Cadeira() ;
// essa linha atrás de banco é só pra dar o espaço.
___painelDasCadeiras.add(banco[i].getButton()) ;
//getButton() é um método que você criaria o qual retornasse o JButton do objeto de Cadeira.
//Ou então você simplesmente faz button[i].<nome do botão> , caso ele seja public ou default.
}

Por fim, no lado Oeste do BorderLayout da janela de vendas eu coocaria um painel sobre os detalhes da venda: quando o usuário clicasse num dos botões citados acima apareceria o preço, número da cadeira (…) e o botão “comprar” - clicando nele a cadeira seria vendida e o botão dela (o botão colocado na grade de 5x5) ficaria inativo. >> botãoDaCadeira.setEditable(false) ;

Se você não entendeu nada, se você quer que eu explique melhor, se eu entendi tudo errado ou se você me acha um doido, me deixe saber:
homemletra@gmail.com

Agora tenho que ir. Espero ter dado uma luz.