B
BrooKy
Gast
Moin,
ich hab ein kleines Problem. Das unten stehenden Programm soll einen JFrame erzeugen, in den dann wiederum ein JPanel eingefügt wird, auf dem man Linien malen kann. Das Ganze funktioniert auch einwandfrei, jedoch will es mir nicht gelingen die Hintergrundfarbe des Panels zu ändern. Ich habe das mittels setBackground() an allen möglichen Stellen ausprobiert, aber nie passiert irgedwas. Komischerweise funktioniert es sofort, wenn ich statt eines JPanels ein Panel verwende... Hat jemand ne Idee?
MfG
Frame:
Panel:
[/code]
ich hab ein kleines Problem. Das unten stehenden Programm soll einen JFrame erzeugen, in den dann wiederum ein JPanel eingefügt wird, auf dem man Linien malen kann. Das Ganze funktioniert auch einwandfrei, jedoch will es mir nicht gelingen die Hintergrundfarbe des Panels zu ändern. Ich habe das mittels setBackground() an allen möglichen Stellen ausprobiert, aber nie passiert irgedwas. Komischerweise funktioniert es sofort, wenn ich statt eines JPanels ein Panel verwende... Hat jemand ne Idee?
MfG
Frame:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Paint extends JFrame {
Container c;
Linie l = new Linie();
public Paint(){
c = getContentPane();
c.setLayout(new BorderLayout());
// l.setOpaque(false);
// l.setBackground(Color.red);
System.out.println(l.isBackgroundSet());
c.add(l);
}
public static void main(String[] args) {
Paint fenster = new Paint();
fenster.setSize(500,300);
fenster.setTitle("Tolles Java-Paint");
fenster.setVisible(true);
fenster.setResizable(false);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Panel:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Linie extends JPanel {
int xAlt, yAlt, xNeu, yNeu;
public Linie () {
addMouseListener(new MHandler());
addMouseMotionListener(new MMHandler());
}
public void paintComponent (Graphics g) {
g.setColor(Color.BLACK);
g.drawLine(xAlt, yAlt, xNeu, yNeu);
System.out.println("drawing: (" + xAlt + ";" + xNeu + ") - (" + yAlt + ";" + yNeu + ")");
xAlt = xNeu; yAlt = yNeu;
}
class MHandler extends MouseAdapter {
public void mousePressed (MouseEvent e) {
xAlt = e.getX();
yAlt = e.getY();
}
}
class MMHandler extends MouseMotionAdapter {
public void mouseDragged (MouseEvent e) {
xNeu = e.getX(); yNeu = e.getY();
repaint();
}
}
}