2017-10-07 3 views
0

Je sens que je suis passé par tout ce que je devais faire:Graphics non dessin à JFrame

  • Faire une classe graphique qui a un vide appelé paintComponent et étend JComponent
  • Avoir ce vide paintComponent ont Graphics g comme un paramètre, puis faites Graphics2D g2d = (Graphics2D) g;
  • Ajouter la classe Graphics à mon JFrame

Je ne trouve rien à redire à cela, donc je suis un peu confus.
Mon code est ici:

public static void main(String[] args) { 
    DragonEscape game = new DragonEscape(); 
    frame.setTitle(title); 
    frame.setSize(1000, 500); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true); 
    frame.setResizable(false); 
    frame.setLocationRelativeTo(null); 
    frame.add(new Graphicsa()); 
    frame.add(game); 
} 

et

import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 

import javax.swing.JComponent; 

public class Graphicsa extends JComponent { 
    private static final long serialVersionUID = 1L; 

    public Graphics g; 

    protected void paintComponent(Graphics g) { 
     Graphics2D g2d = (Graphics2D) g; 
     g.fillRect(0, 0, 1000, 500); 
     g.setColor(Color.gray); 
     g.fillRect(0, 0, 100, 100); 
    } 

} 
+0

Quelqu'un va-t-il faire quelque chose? –

+0

(1-) Soyez patient! Les gens répondent aux questions quand ils ont le temps. Il n'y a aucune garantie quand cela sera. – camickr

+0

@camickr ok. Je vais –

Répondre

0
frame.add(new Graphicsa()); 
frame.add(game); 

Un seul composant peut être ajouté à la CENTER du BorderLayout du JFrame. Ainsi, votre composant de jeu remplace le composant graphique.

Lire les Swing tutorial pour les bases de Swing. Il y a des sections sur:

  1. Comment utiliser BorderLayout
  2. Peinture personnalisée

que directement lié à cette question.

Aussi, pourquoi essayez-vous même de faire de la peinture graphique? Si j'ai l'impression que vous essayez juste de peindre le fond d'une certaine couleur. Utilisez simplement la méthode setBackground(...) sur votre composant de jeu.

+0

Merci pour cela, je ne savais pas que c'était une chose –