J'ai essayé cela pendant des heures maintenant sans succès.Comment puis-je utiliser une méthode d'une classe dans une classe différente?
J'essaie d'utiliser la méthode paintComponent dans ma classe Game.java, mais je ne sais pas exactement comment procéder.
J'ai essayé d'appeler la fonction directement, mais bien sûr, cela ne fonctionne pas car il faut retourner quelque chose.
La méthode que je dois utiliser est dans cette classe "Circles.java":
package testgame;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;
import javax.swing.JPanel;
import javax.swing.JPanel;
public class Circles extends JPanel {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Bubbles(g); }
private void Bubbles(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
RenderingHints rh
= new RenderingHints(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
rh.put(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHints(rh);
int x, y, size;
x = (int) (Math.random() * 500) + 15;
y = (int) (Math.random() * 450) + 15;
size = (int) (Math.random() * 30) + 10;
g2d.setColor(Color.green);
g2d.drawOval(x, y, size, size); }
}
Ceci est la classe qui a besoin de la méthode paintComponent (Game.java):
package testgame;
import java.awt.EventQueue;
import javax.swing.JFrame;
public class Game extends JFrame {
public static void LoadUI() {
JFrame frame = new JFrame("Just a test!");
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setSize(550, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true); }
public static void main(String[] args) {
frame.add(new (Circles())); }
}
L'erreur que je reçois est le:
frame.add(new (Circles()));
L'être d'erreur:
identifier expected
cannot find symbol
symbol: method Circles()
location: class Game
cannot find symbol
symbol: variable frame
location: class Game
Possible copie de [paint() et repaint() en Java] (https://stackoverflow.com/questions/10768619/paint-and-repaint-in-java) –
au lieu de frame.add (new (Cercles())); écrivez frame.add (new Circles()); – keuleJ