AJBM Posted August 10, 2013 at 05:08 PM Report #521418 Posted August 10, 2013 at 05:08 PM 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?
Monami Posted August 17, 2013 at 09:36 PM Report #521975 Posted August 17, 2013 at 09:36 PM Porque quando fazes setVisible ele carrega os elementos já adicionados antes, e só depois fá-los aparecer.
Ernest Posted August 18, 2013 at 01:48 AM Report #521985 Posted August 18, 2013 at 01:48 AM 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
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now