Hallo,
Zuerst, ja ich hab gegoogelt, aber nein ich habe nicht genau das gefunden was ich gesucht habe.
Ich möchte eigentlich nur einen Button auf ein TitlePanel (extends JPanel, nullLayout), bei dem ich die Paint Methode überschrieben und nen MouseListner hinzugefügt habe, legen. Der Button selbst ist unverändert, nur setBounds() und ein ActionListner ist gesetzt. Dem titlePanel wurde er natürlich hinzugefügt.
Klicke ich an die Stelle wo er sein sollte wird auch der ActionListner des Button ausgelöst, er ist also da wo er sein sollte nur sehe ich ihn nicht.
Hab auch schon repaint() von Button & TitlePanel ausprobiert.. nichts.
Kann es sein, dass der Button von der paint Methoden überschrieben wird?
Hier das TitlePanel:
P.S.: Das Null-layout wird noch abgeändert, sollte aber eigentlich nicht das Problem sein.
Zuerst, ja ich hab gegoogelt, aber nein ich habe nicht genau das gefunden was ich gesucht habe.
Ich möchte eigentlich nur einen Button auf ein TitlePanel (extends JPanel, nullLayout), bei dem ich die Paint Methode überschrieben und nen MouseListner hinzugefügt habe, legen. Der Button selbst ist unverändert, nur setBounds() und ein ActionListner ist gesetzt. Dem titlePanel wurde er natürlich hinzugefügt.
Klicke ich an die Stelle wo er sein sollte wird auch der ActionListner des Button ausgelöst, er ist also da wo er sein sollte nur sehe ich ihn nicht.
Hab auch schon repaint() von Button & TitlePanel ausprobiert.. nichts.
Kann es sein, dass der Button von der paint Methoden überschrieben wird?
Hier das TitlePanel:
Java:
package fractalator.main.surface.components;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TitlePanel extends JPanel {
JFrame Frame;
Point point;
String title;
public TitlePanel(String title, JFrame frame) {
this.title = title;
this.Frame = frame;
this.setSize(frame.getWidth(), 50);
point = Frame.getLocation();
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if(!e.isMetaDown()){
point.x = e.getX();
point.y = e.getY();
}
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
if(!e.isMetaDown()){
Point p = Frame.getLocation();
Frame.setLocation(p.x + e.getX() - point.x, p.y + e.getY() - point.y);
}
}
});
}
@Override
public void paint(Graphics g) {
//TitleBar
g.setColor(new Color(64,64,64));
g.fillRect(0, 0, this.getWidth(), 50);
g.setColor(new Color(255,255,255));
g.setFont(new Font("Calibri",0,26));
g.drawString(title, 20, 35);
repaint();
}
}
P.S.: Das Null-layout wird noch abgeändert, sollte aber eigentlich nicht das Problem sein.