Hallo,
ich habe mal zum Üben ein kleines Programm geschrieben.
Das Programm hat zwei Fehler, und zwar:
wie kann ich den Punkt, der beim Programmstart erscheint wegmachen, bzw. dass der schwarze Punkt gar nicht erscheint beim Programmstart?
und zweitens alle Punkte sollen bestehen bleiben und nicht bei jedem Mausklick neu gemalt werden. Höchswahrscheinlich hat es was mit diesem "repaint()" (Zeile 58) zu tun, doch wenn ich dies weglasse werden überhaupt keine Punkte mehr gemalt.
hier der Code:
ich habe mal zum Üben ein kleines Programm geschrieben.
Das Programm hat zwei Fehler, und zwar:
wie kann ich den Punkt, der beim Programmstart erscheint wegmachen, bzw. dass der schwarze Punkt gar nicht erscheint beim Programmstart?
und zweitens alle Punkte sollen bestehen bleiben und nicht bei jedem Mausklick neu gemalt werden. Höchswahrscheinlich hat es was mit diesem "repaint()" (Zeile 58) zu tun, doch wenn ich dies weglasse werden überhaupt keine Punkte mehr gemalt.
hier der Code:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Maus extends JFrame {
Panel panel;
public Maus()
{
super("Test");
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
panel = new Panel();
setLayout(new BorderLayout());
add(panel, BorderLayout.CENTER);
pack();
setVisible(true);
}
public static void main(String[] args) {
new Maus();
}
}
class Panel extends JPanel implements MouseListener {
Color col;
int x;
int y;
public Panel()
{
setBackground(Color.white);
setPreferredSize(new Dimension(300, 200));
addMouseListener(this);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(col);
g.fillOval(x, y, 10, 10);
}
public void mousePressed(MouseEvent me)
{
// Maustaste links
if (me.getButton() == MouseEvent.BUTTON1) {
col = Color.red;
x = me.getX();
y = me.getY();
repaint();
}
}
// Dummies
public void mouseClicked(MouseEvent me) {}
public void mouseEntered(MouseEvent me) {}
public void mouseReleased(MouseEvent me) {}
public void mouseExited(MouseEvent me) {}
}
Zuletzt bearbeitet: