2013-10-07 1 views
-4

Je suis à la recherche d'un tutoriel ici: http://zetcode.com/tutorials/javagamestutorial/basics/JButton ne s'affichera pas?

À la fin, ils montrent comment définir une image en arrière-plan (ce qui est simple). Ils utilisent 2 codes: Board.java et Image.java (que j'ai copiés ci-dessous pour votre commodité).

Pour une raison quelconque, je n'arrive pas à ajouter un JButton à mon interface graphique?

J'ai essayé d'ajouter le code suivant à Image.java après la ligne Image Main = new Image();, mais je n'arrive pas à comprendre pourquoi cela ne fonctionne pas. Normalement, je peux juste ajouter un JButton à un JPanel en utilisant la commande add et mettre le panneau à visible avec setVisible(true).

JButton start; 
    start = new JButton("Click Me"); 
    Main.getContentPane().add(start); 

J'ai aussi essayé d'ajouter un code similaire à Board.java au lieu juste pour voir si elle travaillerait - et bien sûr ne l'ont pas. Comment se fait-il que mon JButton n'apparaisse pas? Je sais que je fais quelque chose de mal, mais je ne peux pas le comprendre. Quelqu'un peut-il aider?


(1) Board.java

package bardejov; 

import java.awt.Graphics; 
import java.awt.Graphics2D; 
import javax.swing.JButton; 
import javax.swing.JFrame; 

import java.awt.Image; 

import javax.swing.ImageIcon; 
import javax.swing.JPanel; 

public class Board extends JPanel { 

    Image bardejov; 

    public Board() { 
     ImageIcon ii = new ImageIcon(this.getClass().getResource("bardejov.jpg")); 
     bardejov = ii.getImage(); 
    } 

    public void paint(Graphics g) { 

     Graphics2D g2d = (Graphics2D) g; 
     g2d.drawImage(bardejov, 10, 10, null); 
    } 
} 

(2) Image.java

package bardejov; 

import javax.swing.JFrame; 
import javax.swing.JButton; 


public class Image extends JFrame { 

    public Image() { 

     add(new Board()); 

     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(280, 240); 
     setLocationRelativeTo(null); 
     setTitle("Bardejov"); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     Image Main = new Image(); 
    } 
} 
+0

Je ne vois aucun code ci-dessus où vous nous montrez comment vous essayez d'ajouter le bouton à votre code actuel. –

+0

Suis-je trop fatigué, ou ne vois-je pas le 'JButton' dans le code source? ._. – GGrec

+0

Voyez-vous l'image? Dans votre code, il n'y a pas de JButton –

Répondre

1

Vous devez d'abord créer un JPanel avec le Conseil et le bouton posé correctement. Définissez ensuite JPanel en tant que volet de contenu pour JFrame. Vous essayez d'ajouter deux composants différents au cadre via différentes méthodes qui causent la confusion. Si vous redimensionnez le cadre, vous verrez le bouton que vous avez ajouté en arrière-plan.