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.
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.
[code]class CanvasTeste extends JComponent {
public BufferedImage img;
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (img == null) return;
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?
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
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?
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 :?
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.(Window.java:437)
at java.awt.Frame.(Frame.java:419)
at javax.swing.JFrame.(JFrame.java:224)
at zell.Main.main(Main.java:18)
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/