| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/07/2007 21:54:40
|
renatoes
JavaBaby
![[Avatar]](/images/avatar/0f1660f4c5defc5b8d938ecd39837d11.jpg)
Membro desde: 04/09/2006 20:00:45
Mensagens: 84
Localização: Londrina-PR
Offline
|
Olá amigos,
Minha dúvida se divide em diversas outras, então vou focar nas principais. Tenho um trabalho para a faculdade onde devo fazer um simulador de Sistema Operacional. A lógica do programa já está feita, mas a interface gráfica está sendo *o* problema. Devo representar diversos elementos que compõem o sistema operacional e outros elementos do computador de forma gráfica; por exemplo, a memória deve ser o desenho de uma caixa com algumas divisões, e cada divisão sendo um espaço da memória. Daí surgem diversos dúvidas:
- Como fazer elementos gráficos ficarem sempre do mesmo tamanho (tanto painéis quanto o frame principal que exibirá o simulador)?
- Como atualizar, através do uso de threads, esses elementos gráficos? Já fiz algumas aplicações GUI com Multithreading mas nada que beirasse a complexidade dos elementos desse trabalho (deve haver no mínimo 10 elementos gráficos a serem desenhados, especialmente filas).
- Como fazer um (ou mais) painel(éis) ocupar(em) uma posição específica, sem que ele(s) possa(m) ser redimensionado(s)?
Se alguém puder me envie um exemplo ou código que exemplifique principalmente o uso de threads (principalmente em casos onde a interface é atualizada pelo uso de uma thread).
Abraços, e boa noite
|
self.life = rand()
Our will will guide us to a place where we belong. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2007 00:05:17
|
mfp.c
JavaChild
Membro desde: 17/01/2007 20:30:42
Mensagens: 140
Localização: Brazil - RJ
Offline
|
ja tentou usar paint(Graphics g) ?
|
http://www.devnews.com.br Notícias de internet e Tecnologia. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2007 00:26:45
|
renatoes
JavaBaby
![[Avatar]](/images/avatar/0f1660f4c5defc5b8d938ecd39837d11.jpg)
Membro desde: 04/09/2006 20:00:45
Mensagens: 84
Localização: Londrina-PR
Offline
|
Sim
o problema não está no paint, e sim na hierarquia de painéis a serem pintados em um outro painel.
|
self.life = rand()
Our will will guide us to a place where we belong. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 20:10:06
|
renatoes
JavaBaby
![[Avatar]](/images/avatar/0f1660f4c5defc5b8d938ecd39837d11.jpg)
Membro desde: 04/09/2006 20:00:45
Mensagens: 84
Localização: Londrina-PR
Offline
|
Pessoal, boa noite
Infelizmente não consegui até agora realizar esse trabalho, mas agradeço a colaboração de quem leu este tópico.
Bom, vou tentar explicar melhor o problema.
Tenho um classe Conteudo, que extende Painel
Essa classe simplesmente desenha uma string em uma dada posição.
Agora, tenho uma outra classe chamada MemoriaUI:
Essa classe deve manter uma lista de conteudos e repinta-los conforme um evento. Tenho 2 dúvidas:
1° - É correto adicionar cada um dos objetos conteudos ao meu objeto MemoriaUI?
2° - Ao fazer isso, o método paintComponent de MemoriaUI está correto?
Obrigado e peço que se puderem entrem em contato comigo através do email renatoes@gmail.com. Agradeço a ajuda de tds.
|
self.life = rand()
Our will will guide us to a place where we belong. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 20:37:48
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Primeiro, use a chamada do método da superclasse para assegurar que a estrutura do painel será pintada de forma correta.
Já em MemoriaUI, não chame o método paint para repintar, e sim o método repaint().
Em seu código vc está compartlhando o mesmo Graphics entre MemoriaUI e Conteudo (chamando paint), sendo assim vc só vai desenhar em quem tem aquele graphics. Isso NÃO deve ser feito, o paint é de responsabilidade do AWT... Não invoque ele nem paintComponente explicitamente. Use o repaint() como já falei.
A sua estruturação eu acho que está correta... Acho que isso vai mais de gosto mesmo.
Até mais!
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 21:13:08
|
renatoes
JavaBaby
![[Avatar]](/images/avatar/0f1660f4c5defc5b8d938ecd39837d11.jpg)
Membro desde: 04/09/2006 20:00:45
Mensagens: 84
Localização: Londrina-PR
Offline
|
Caro davidbuzatto,
Muito obrigado pela resposta, testei aqui e tudo ocorreu normal
Vou trabalhar aqui para montar o resto das classes, mas sua explicação iluminou muito.
Obrigado mais uma vez e boa noite a todos.
|
self.life = rand()
Our will will guide us to a place where we belong. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/07/2007 22:17:41
|
davidbuzatto
Moderador
![[Avatar]](/images/avatar/7ba6d33c373fea56b7258003b16c68e5.jpg)
Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline
|
Que bom que deu certo!
Falow!
|
Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."
http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm |
|
|
 |
|
|