Hallo, ich bin quasi ein Neuling beim Java Programmieren und bräuchte Hilfe beim Schreiben von einem Programm.
Das Programm besteht aus ein paar Textfeldern, in die man Werte eingeben kann und das Programm soll dann anhand dieser Werte einen Kreis zeichnen.
Ich habe allerdings Schwierigkeiten dabei, die actionPerformed Methode korrekt zu schreiben, bzw. weiss nicht, wie ich es hinkriege, das Ausführen einer zweiten Methode in einer Methode zu formulieren. Theoretisch sollte das doch gehen, oder?
Das ganze sieht bis jetzt so aus:
Der Fehler liegt in Zeile 53.
Ich weiss nicht, wie ich es zum Ausdruck bringen soll, dass das Programm, nachdem es die Werte aus den TextFeldern eingelesen hat, die paintComponents()-Methode durchführt, die weiter unten definiert ist.
Ich hab schon einiges ausprobiert, aber es gelingt mir nicht, das ganze korrekt zu formulieren.
Kann mir vielleicht jemand dabei helfen?
Das Programm besteht aus ein paar Textfeldern, in die man Werte eingeben kann und das Programm soll dann anhand dieser Werte einen Kreis zeichnen.
Ich habe allerdings Schwierigkeiten dabei, die actionPerformed Methode korrekt zu schreiben, bzw. weiss nicht, wie ich es hinkriege, das Ausführen einer zweiten Methode in einer Methode zu formulieren. Theoretisch sollte das doch gehen, oder?
Das ganze sieht bis jetzt so aus:
Java:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
public class Circle extends JFrame implements ActionListener {
JLabel xLabel = new JLabel("X-Position: ");
JTextField xField = new JTextField("0", 3);
JLabel yLabel = new JLabel("Y-Position: ");
JTextField yField = new JTextField("0", 3);
JLabel rLabel = new JLabel("Radius: ");
JTextField rField = new JTextField("0", 3);
JButton draw = new JButton("Draw Circle");
JPanel pane = new JPanel();
float x;
float y;
float r;
public Circle() {
super("Circle Drawer");
setSize(400, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pane.setLayout(null);
xLabel.setBounds(new Rectangle(10, 10, 100, 20));
xField.setBounds(new Rectangle(90, 10, 40, 20));
yLabel.setBounds(new Rectangle(10, 40, 100, 20));
yField.setBounds(new Rectangle(90, 40, 40, 20));
rLabel.setBounds(new Rectangle(10, 70, 100, 20));
rField.setBounds(new Rectangle(90, 70, 40, 20));
draw.setBounds(new Rectangle(10, 100, 120, 20));
CirclePane crcl = new CirclePane();
crcl.setBounds(new Rectangle(150, 10, 220, 180));
pane.add(xLabel);
pane.add(xField);
pane.add(yLabel);
pane.add(yField);
pane.add(rLabel);
pane.add(rField);
pane.add(draw);
pane.add(crcl);
add(pane);
setVisible(true);
}
public static void main(String[] arguments) {
new Circle();
}
public void actionPerformed(ActionEvent event) {
float x = Float.parseFloat(xField.getText());
float y = Float.parseFloat(yField.getText());
float r = Float.parseFloat(rField.getText());
// paintComponents(?);
}
}
class CirclePane extends JPanel {
float x;
float y;
float r;
public void paintComponents(Graphics comp) {
Graphics2D comp2D = (Graphics2D)comp;
comp2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Ellipse2D.Float circle = new Ellipse2D.Float(x, y, r, r);
comp2D.draw(circle);
}
}
Der Fehler liegt in Zeile 53.
Ich weiss nicht, wie ich es zum Ausdruck bringen soll, dass das Programm, nachdem es die Werte aus den TextFeldern eingelesen hat, die paintComponents()-Methode durchführt, die weiter unten definiert ist.
Ich hab schon einiges ausprobiert, aber es gelingt mir nicht, das ganze korrekt zu formulieren.
Kann mir vielleicht jemand dabei helfen?
Zuletzt bearbeitet von einem Moderator: