ich komm mir iwi grad dumm vor...
ich hab grad nen gaanz einfaches zeichenprogramm geschrieben(15 min) aber iwi verstehe ich nicht was ich beim JPanel hintergrundfarbe setzen falsch mache...
normalerweise müsste das this/super.setBackground() im konstruktor doch schon ausreichen...
kann mir mal jemand sagen was ich da falsch mache? ich probiere schon die ganz zeit rum und komme mir dabei dumm vor weil ichs nicht schaffe nen JPanel rot zu zeichnen
ich hab grad nen gaanz einfaches zeichenprogramm geschrieben(15 min) aber iwi verstehe ich nicht was ich beim JPanel hintergrundfarbe setzen falsch mache...
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DrawingBoard extends JPanel implements MouseMotionListener {
private static final long serialVersionUID = 1L;
boolean toDraw, clear = false;
int x, y;
int oldx, oldy;
public DrawingBoard() {
super.setBackground(Color.red);
this.setBackground(Color.red);
System.out.println(this.getBackground());
final JFrame f = new JFrame("Drawing Board");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(new BorderLayout());
f.add(this, BorderLayout.CENTER);
JButton b = new JButton("Clear");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
clear = true;
repaint();
}
});
f.add(b, BorderLayout.PAGE_END);
f.addMouseMotionListener(this);
f.setSize(500, 500);
f.setVisible(true);
}
public static void main(String[] args) {
new DrawingBoard();
}
@Override
public void paintComponent(Graphics g) {
System.out.println(this.getBackground());
if (toDraw) {
g.drawLine(oldx, oldy, x, y);
toDraw = false;
}
if (clear) {
g.clearRect(0, 0, 5000, 5000);
clear = false;
}
}
@Override
public void mouseDragged(MouseEvent e) {
toDraw = true;
oldx = x;
oldy = y;
x = e.getX() - 5;
y = e.getY() - 25;
repaint();
}
@Override
public void mouseMoved(MouseEvent e) {
x = e.getX() - 5;
y = e.getY() - 25;
}
}
kann mir mal jemand sagen was ich da falsch mache? ich probiere schon die ganz zeit rum und komme mir dabei dumm vor weil ichs nicht schaffe nen JPanel rot zu zeichnen