Abend zusammen,
Ich habe eine Tabelle in einem Panel welcher ich ein MouseListener hinzufügen möchte, der bei mouseMoved ein Rechteck an den Mauskoordinaten über der Tabelle darstellen soll.
Ich habe etwas rum experimentiert bekomme das ganze aber nur auf einem JFrame hin.
Deshalb meine Frage wie genau sollte ich vorgehen oder was muss man machen um dies hinzubekommen.
#Anfänger im Swing bereich
import java.awt.*;
import java.awt.Point;
import javax.swing.*;
import java.awt.event.*;
public class DrawRectangleOnMouseClick extends JPanel{
MouseHandler mouseHandler = new MouseHandler();
Point p1 = new Point(0, 0);
Point p2 = new Point(0, 0);
boolean drawing = true;
public DrawRectangleOnMouseClick(){
this.setPreferredSize(new Dimension(1000, 400));
this.addMouseMotionListener(mouseHandler);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(p1.x, p1.y, 32, 32*10);
g.drawRect(p1.x, p1.y, 32, 32*10);
}
private class MouseHandler extends MouseAdapter {
public void mouseMoved(MouseEvent e) {
p1 = e.getPoint();
p2 = p1;
drawing = false;
repaint();
}
}
public static void main(String[] args) {
JFrame f = new JFrame("Draw Rectangle On Mouse Click");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new DrawRectangleOnMouseClick());
f.pack();
f.setVisible(true);
}
}
Ich habe eine Tabelle in einem Panel welcher ich ein MouseListener hinzufügen möchte, der bei mouseMoved ein Rechteck an den Mauskoordinaten über der Tabelle darstellen soll.
Ich habe etwas rum experimentiert bekomme das ganze aber nur auf einem JFrame hin.
Deshalb meine Frage wie genau sollte ich vorgehen oder was muss man machen um dies hinzubekommen.
#Anfänger im Swing bereich
import java.awt.*;
import java.awt.Point;
import javax.swing.*;
import java.awt.event.*;
public class DrawRectangleOnMouseClick extends JPanel{
MouseHandler mouseHandler = new MouseHandler();
Point p1 = new Point(0, 0);
Point p2 = new Point(0, 0);
boolean drawing = true;
public DrawRectangleOnMouseClick(){
this.setPreferredSize(new Dimension(1000, 400));
this.addMouseMotionListener(mouseHandler);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect(p1.x, p1.y, 32, 32*10);
g.drawRect(p1.x, p1.y, 32, 32*10);
}
private class MouseHandler extends MouseAdapter {
public void mouseMoved(MouseEvent e) {
p1 = e.getPoint();
p2 = p1;
drawing = false;
repaint();
}
}
public static void main(String[] args) {
JFrame f = new JFrame("Draw Rectangle On Mouse Click");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new DrawRectangleOnMouseClick());
f.pack();
f.setVisible(true);
}
}