Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

AJBM

SetFocus

Mensagens Recomendadas

AJBM

Boas!

Eu estou uma duvida eu tenho este codigo.

public class SpaceBattle extends JFrame {
   public SpaceBattle() {

    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setLayout(new BorderLayout());
    this.setSize(900, 900);
    this.setResizable(false);
    this.setVisible(true);
    this.add(new Board(), BorderLayout.CENTER);

   }
   public static void main(String[] args) {
    new SpaceBattle();
   }
}

public class Board extends JPanel implements ActionListener {
   private Timer timer;
   private Craft craft;
   private final short sleepTime=5;
   public Board() {
    this.setFocusable(true);
    this.setBackground(Color.BLACK);
    this.setDoubleBuffered(true);
    this.craft = new Craft();
    this.timer = new Timer(this.sleepTime, this);
    this.timer.start();
    addKeyListener(new TAdapter());
   }
   @Override
   public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage(craft.getImage(), craft.getX(), craft.getY(), this);
    Toolkit.getDefaultToolkit().sync();
    g.dispose();
   }
   @Override
   public void actionPerformed(ActionEvent e) {
    craft.move();
    repaint();
   }
   private class TAdapter extends KeyAdapter {
    @Override
    public void keyReleased(KeyEvent e) {
	    craft.keyReleased(e);
    }
    @Override
    public void keyPressed(KeyEvent e) {
	    craft.keyPressed(e);
    }
   }
}

Se eu tiver o método setVisible na Classe Jframe no sitio onde está, executa mas não aparece o que eu quero. se eu colocar o método depois de adicionar o board já funciona perfeitamente Eu queria saber porque?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ernest Duarte

Bom dia,

Eu experimentei este código no Eclipse depois de ter implementado a minha própria classe Craft , (já que não foi fornecida) e nos dois casos funciona perfeitamente.

Não vejo nenhuma rezão técnica para não poder adicionar componentes depois da visualização de uma JFrame. Até pode apagar e meter outros dinamicamente.

Se não funciona é por que na classe Craft deve haver alguma coisa que não corre bem.

Cordialmente

Ernest Duarte

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.