Hallo,
ich will mithilfe einer GUI eine "Leinwand" erstellen, auf der frei gezeichnet werden kann.
Ich habe eine Klasse "GUI", in dieser befindet sich der Button "Frei zeichnen". Wenn er gedrückt wird, soll man auf der Leinwand zeichnen können. Es gibt eine weitere Klasse namens "FreiZeichnen", dort sind alle Sachen für das Zeichnen implementiert.
Hier der Ausschnitt aus der Klasse GUI:
Leider tut sich gar nichts, wenn der Button gedrückt wird. Hat jemand eine Idee? Danke schonmal
ich will mithilfe einer GUI eine "Leinwand" erstellen, auf der frei gezeichnet werden kann.
Ich habe eine Klasse "GUI", in dieser befindet sich der Button "Frei zeichnen". Wenn er gedrückt wird, soll man auf der Leinwand zeichnen können. Es gibt eine weitere Klasse namens "FreiZeichnen", dort sind alle Sachen für das Zeichnen implementiert.
Code:
import java.util.ArrayList;
import java.util.List;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.*;
import java.awt.*;
public class FreiesZeichnen extends JPanel {
List<Point> points;
public FreiesZeichnen() {
points = new ArrayList<>();
addListenersZeichnen();
}
private void addListenersZeichnen() {
this.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent e) {
FreiesZeichnen.this.points.add(e.getPoint());
repaint();
}
});
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.RED);
for (Point point: points) {
g2.fillOval(point.x, point.y, 5, 5);
}
}
}
Hier der Ausschnitt aus der Klasse GUI:
Code:
private JPanel initPanelNorth() {
panelNorth = new JPanel();
panelNorth.setLayout(new FlowLayout(FlowLayout.CENTER));
ButtonGroup gruppe = new ButtonGroup();
freiesZeichnen = new JRadioButton("Freies Zeichnen");
panelNorth.add(freiesZeichnen);
gruppe.add(freiesZeichnen);
freiesZeichnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == freiesZeichnen) {
malen = new FreiesZeichnen();
}
}
});
}
Leider tut sich gar nichts, wenn der Button gedrückt wird. Hat jemand eine Idee? Danke schonmal