JBuilder, Button wird erst angezeigt, wenn man mit der Maus rüberfährt

G

grosem

Hi,
ich habe mir gerade den JBuilder 2005 Foundation runtergeladen. Wenn ich jetzt dort einen Button einfüge und das ganze kompiliere, wird der Button erst dann sichtbar, wenn ich mit der Maus über ihn fahre. Woran liegt das, bzw. wie kann ich das ändern?

MFG
Adrian
 
N'Abend,
das Problem hat sich erledigt. Dafür habe ich eine andere Frage:

Wie ermittle ich die Position vom Cursor bzw. vom Mauszeiger?

MFG
Adrian
 
Zuletzt bearbeitet von einem Moderator:
Moin,
die Position des Mauszeigers bekommst Du über einen MouseListener, den Du der gewünschten Komponente, vermutlich dem Frame, hinzufügst.
Wenn Du wissen möchtest, an welcher Stelle ein Mausklick erfolgte, ist in dem MouseListener die mouseReleased(MouseEvent e) Methode zu implementieren und per
e.getPoint() oder e.getX() / e.getY() auszulesen.
 
hm, ich hab das jetzt wie folgt eingebaut:

public void contentPane_mouseReleased(MouseEvent e) {

int a= e.getX();
jLabel1.setLocation(300,300);
jLabel1.setText("Test");
}
das jLabel1.setText löse ich nur aus, um zu überprüfen ob das überhaupt ausgelöst wird, was aber anscheinend nicht der Fall ist, da sich das Label nicht ändern.
 
grosem hat gesagt.:
hm, ich hab das jetzt wie folgt eingebaut:

public void contentPane_mouseReleased(MouseEvent e) {

int a= e.getX();
jLabel1.setLocation(300,300);
jLabel1.setText("Test");
}
das jLabel1.setText löse ich nur aus, um zu überprüfen ob das überhaupt ausgelöst wird, was aber anscheinend nicht der Fall ist, da sich das Label nicht ändern.

Wo und wie wird die Methode aufgerufen? Kann auch sein, dass direkt auf der contentPane ein MouseEvent nicht korrekt abgefangen wird und erst ein Panel drauf liegen muss.
 
Ja... fange gerade erst mit Java an, deswegen bin ich noch nicht ganz sicher mit den Funktionen etc. (muss aber bis morgen was abliefern, danach lerne ich es richtig...).
Also das ganze steht in meiner "Hauptklasse" und ich dachte eigentlich, dass die Funktion (ähnlich zu paint) automatisch ausgelöst wird, sobald man mit der Maus klickt!?
 
grosem hat gesagt.:
Also das ganze steht in meiner "Hauptklasse" und ich dachte eigentlich, dass die Funktion (ähnlich zu paint) automatisch ausgelöst wird, sobald man mit der Maus klickt!?

Nein, automatisch werden nur wenige Methoden aufgerufen, z.B. paint(). Du musst wenn schon dann der contentPane einen MouseListener hinzufügen:

Code:
getContentPane().addMouseListener(new MouseAdapter() {
      public void mouseReleased(MouseEvent e) {
        int a= e.getX();
        jLabel1.setLocation(300,300);
        jLabel1.setText("Test");      }
    });

Oder eben wenn das nicht funktionieren sollte der contentPane ein Panel zuweisen und diesem dann den MouseListener hinzufügen.
 
Zurück