problema com canvas e JFrame no linux(ubuntu)  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
Naruffy
JavaEvangelist
[Avatar]

Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline

Fala galera,

estou com o seguinte problema, estou realizando testes em desenhar imagens através de canvas em um jframe, no windows a classe a seguir funciona certo, mas no me ubuntu a imagem naum aparece sempre, e o jframe fica travando direto, alguem sabe algo que pode ser.



Agradeço
[]s

This message was edited 1 time. Last update was at 02/07/2009 11:12:21

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20573
Localização: Curitiba/PR
Online

Não misture AWT e Swing repetindo não misture AWT e Swing.

Ao invés de fazer um filho de JCanvas, faça um de JComponent.

AWT tem componentes HeavyWeight. Eles não são exatamente desenhados na tela, mas são herdados do SO. Já o Swing é lightweight. Os componentes da AWT sempre irão se sobrepor aos do Swing, o que gera um comportamento péssimo e instável.

Use só o Swing. Hoje não há mais motivos para inserir AWT em seu código.

This message was edited 1 time. Last update was at 02/07/2009 11:45:58


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Naruffy
JavaEvangelist
[Avatar]

Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline

Substitui o seu código pelo meu, porém deu erro na linha super.paint(g);, comentei essa linha para testar e funcionou, não testei no linux ainda pois aqui no trampo eu uso o windows. Assim que eu testar eu posto aqui, mas fiquei na dúvida quanto essa linha que comentei, fiz algo errado?

Como meu código ficou:



Obrigado

[]s

This message was edited 1 time. Last update was at 02/07/2009 11:46:07

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20573
Localização: Curitiba/PR
Online

Sim, é pq o método agora é paintComponent.

Então será
super.paintComponent(g);

No lugar de
super.paint(g);

Já corrigi no código lá em cima.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20573
Localização: Curitiba/PR
Online

Já que você está começando com Java2D, não custa dar uma lida primeiro em:
http://java.sun.com/products/jfc/tsc/articles/painting/#swing
http://java.sun.com/docs/books/tutorial/2d/index.html

This message was edited 1 time. Last update was at 02/07/2009 11:51:05


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Naruffy
JavaEvangelist
[Avatar]

Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline

Agora vi lá

Funcionou, vou ver no linux depois e posto se der certo.

Irei ver sim esses links, irei precisar mesmo de mais conhecimento em java2d para fazer o que estou planejando.

Muito obrigado pela ajuda

This message was edited 1 time. Last update was at 02/07/2009 11:52:06

ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20573
Localização: Curitiba/PR
Online

Só de curiosidade... o que você está planejando fazer?

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Naruffy
JavaEvangelist
[Avatar]

Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline

Então, eu vivia criando jogos em programas feitos para isso, um tal de RPG Maker, Game Maker e alguns outros.

Ai a algum tempo eu instalei o linux no meu computador e queria criar jogos nele também. Mas todos esses programas citados acima são da plataforma windows.

Resolvi então criar algo no java que é multiplataforma, então estou criando um framework para criar jogos de rpg.

E penso futaramente, digo futuramente mesmo, criar uma IDE que utilize esse frameworks
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20573
Localização: Curitiba/PR
Online

Nesse caso, esses dois links também são pra você:
http://www.cokeandcode.com/spaceinvaderstutorial
http://fivedots.coe.psu.ac.th/~ad/jg/

E, se possível, é uma boa adquirir esse livro também:
http://www.brackeen.com/javagamebook/

E não custa olhar APIs como essa aqui:
http://www.jmonkeyengine.com
http://www.libsdl.org

This message was edited 5 times. Last update was at 02/07/2009 12:13:19


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Naruffy
JavaEvangelist
[Avatar]

Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline

Testei no ubuntu, não deu certo.

Suspeitei de o problema ser no JFrame e não na imagem, então criei um simples JFrame apenas, e este já travou, será que o JFrame não funciona no linux?

Caso não existe alguma alternativa ao JFrame.

obrigado
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20573
Localização: Curitiba/PR
Online

Existe o JDialog.

Ou, no caso de você programar em AWT direto, o Frame (e, nesse caso, você volta a usar o Canvas).

Mas que estranho, já procurou sobre esse bug no google?

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Naruffy
JavaEvangelist
[Avatar]

Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline

Dei uma procurada sim, mas não encontrei nada, talvez algum problema no meu micro? Pois acho bem improvavel existir um bug desse e ninguem ter falado, vou tentar instalar o java 6 nele pois atualmente está o 5, se nada funcionar vou ter que continuar a programar no windows
_Zell_
Debugger
[Avatar]

Membro desde: 21/07/2010 15:44:12
Mensagens: 66
Offline

Eu estou aqui com o mesmo problema com o JFrame no Linux. O código funciona até encontrar uma linha do tipo "new JFrame()". A partir dai da uma exceção:

Exception in thread "main" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
at java.awt.Window.<init>(Window.java:437)
at java.awt.Frame.<init>(Frame.java:419)
at javax.swing.JFrame.<init>(JFrame.java:224)
at zell.Main.main(Main.java:1

Vou ver de descubro os motivos do problema. Qualquer coisa eu posto a solução aqui. E se alguém descobrir anarquiza a coisa pra galera ai o/
Rodrigo Calovi
Smalltalk

Membro desde: 11/02/2011 19:30:53
Mensagens: 1
Offline

Estou com o mesmo problema, não aparece nada no linux. Não achei a solução ainda.
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team