Hallo,
schreibe gerade an einem Zeichenprogramm, in welchem ein JPanel die sog. Zeichentafel darstellen soll.
Ich habe dem Panel einen MouseListener angehängt, jedoch reagiert es nicht auf MouseEvents (Mausklicks).
und
Woran könnte das liegen?
schreibe gerade an einem Zeichenprogramm, in welchem ein JPanel die sog. Zeichentafel darstellen soll.
Ich habe dem Panel einen MouseListener angehängt, jedoch reagiert es nicht auf MouseEvents (Mausklicks).
Code:
import java.awt.Canvas;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
public class AuswahlBox extends Canvas implements ItemListener, MouseListener, MouseMotionListener {
public Dimension getMinimumSize() {
return new Dimension(300, 300);
}
public Dimension getPreferredSize() {
return getMinimumSize();
}
public void paint(Graphics g) {
g.setColor(Color.black);
g.fillRect(0, 0, 300, 300);
}
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getItem() == "yellow") {
System.out.println("yellow wurde gewählt");
}
if(e.getItem() == "red") {
System.out.println("red wurde gewählt");
}
if(e.getItem() == "green") {
System.out.println("green wurde gewählt");
}
if(e.getItem() == "blue") {
System.out.println("blue wurde gewählt");
}
}
@Override
public void mouseClicked(MouseEvent arg0) {
System.out.println("Maus gedrückt");
}
}
und
Code:
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JFrame{
public static void main(String[] args) {
JFrame F = new JFrame("PaintCanvas");
F.setLayout(new BorderLayout());
F.setSize(300, 300);
F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
AuswahlBox auswahlBox = new AuswahlBox();
panel.add(auswahlBox);
panel.addMouseListener(auswahlBox);
F.add(panel, BorderLayout.CENTER);
Choice choice = new Choice();
choice.addItemListener(auswahlBox);
choice.addItem("yellow");
choice.addItem("red");
choice.addItem("green");
choice.addItem("blue");
JPanel panel1 = new JPanel();
panel1.add(choice);
F.add(panel1, BorderLayout.SOUTH);
F.setVisible(true);
}
}
Woran könnte das liegen?