Hallo,
ich habe folgendes Problem. Ich möchte auf einem Bild zeichnen. Das Bild und die Zeichenebene liegen beide auf unterschiedlichen JPanels. Diese hab ich per Cardlayout übereinander gelegt.
Auf der Zeichenebene soll man per MouseDragg eine Linie um einen festen Punkt zeichnen können. Leider ist die Zeichenebene nicht transparent, so das man das Hintergrundbild nicht mehr sieht.
Background.java
und
zeichne.java
ich hoffe ihr könnt mir weiterhelfen.
Danke schonmal!
malibu99
ich habe folgendes Problem. Ich möchte auf einem Bild zeichnen. Das Bild und die Zeichenebene liegen beide auf unterschiedlichen JPanels. Diese hab ich per Cardlayout übereinander gelegt.
Auf der Zeichenebene soll man per MouseDragg eine Linie um einen festen Punkt zeichnen können. Leider ist die Zeichenebene nicht transparent, so das man das Hintergrundbild nicht mehr sieht.
Background.java
Java:
import java.awt.CardLayout;
import java.io.IOException;
import javax.swing.*;
@SuppressWarnings("serial")
public class Background extends JFrame {
JPanel myPanel = new JPanel();
JPanel draw = new Zeichne();
JLabel bild = new JLabel(new ImageIcon("karte.jpg"));
public Background() throws IOException {
myPanel.setLayout(new CardLayout());
myPanel.add(draw, "Hintergrund");
myPanel.add(bild, "Zeichenebene");
draw.setVisible(true);
draw.setOpaque(false);
add(myPanel);
setSize(450,450);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) throws IOException {
new Background();
}
}
und
zeichne.java
Java:
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JPanel;
class Zeichne extends JPanel implements MouseMotionListener {
int x=0;
int y=0;
Zeichne() {
addMouseMotionListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(200,200,x,y);
}
@Override
public void mouseDragged(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
@Override
public void mouseMoved(MouseEvent arg0) {}
}
ich hoffe ihr könnt mir weiterhelfen.
Danke schonmal!
malibu99