Ich habe das schon seit Stunden versucht, ohne Erfolg.Wie kann ich eine Methode aus einer Klasse in einer anderen Klasse verwenden?
Ich versuche, die PaintComponent-Methode in meiner Game.java-Klasse zu verwenden, aber ich bin mir nicht sicher, wie genau das geht.
Ich habe versucht, die Funktion direkt aufzurufen, aber natürlich funktioniert es nicht, da es etwas zurückgeben muss.
Die Methode, die ich verwenden müssen, ist in dieser "Circles.java" Klasse:
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); }
}
Dies ist die Klasse, die die Methode paintcomponent (Game.java) benötigt:
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())); }
}
Der Fehler, den ich bekommen, ist bei der:
frame.add(new (Circles()));
Der Fehler Wesen:
identifier expected
cannot find symbol
symbol: method Circles()
location: class Game
cannot find symbol
symbol: variable frame
location: class Game
Mögliches Duplikat von [paint() und repaint() in Java] (https://stackoverflow.com/questions/10768619/paint-and-repaint-in-java) –
statt frame.add (neu (Circles())); schreibe frame.add (neue Kreise()); – keuleJ