Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » JComponent, paintComponentund MouseListener

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.08.2006, 18:05 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Hi, ich will das sich die Farbe des kleinen Pseudobuttons ändert,wenn ich mit der Maus über den Button fahre und nicht über das gesamte JFrame. Kann mir da einer weiterhelfen ?
Die komponente wird mit add angefügt, d.h. ich weiß nicht, wo genau sie platziert wird.


C++:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JComponent;
import javax.swing.JFrame;

public class TabCloser extends JComponent
{
    
    private boolean mouse = false;
    
    TabCloser()
    {
        this.setSize(10,10);
        this.addMouseListener(
          new MouseListener()
          {

            public void mouseClicked(MouseEvent arg0)
            {
                
            }

            public void mousePressed(MouseEvent arg0)
            {
                
            }

            public void mouseReleased(MouseEvent arg0)
            {
                
            }

            public void mouseEntered(MouseEvent arg0)
            {
                TabCloser.this.mouse = true;
                repaint();
            }

            public void mouseExited(MouseEvent arg0)
            {
                TabCloser.this.mouse = false;
                repaint();
            }
              
          }
        );
    }
    
    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        int height = 10;
        int width = 10;
        
        if(this.mouse)
        {
            g.setColor(Color.RED);
            g.fillRect(0,0,height,width);
            g.setColor(Color.BLACK);
            g.drawLine(0,0,height,width);
            g.drawLine(0,height,width,0);
            g.drawRect(0,0,height,width);
        }
        else
        {
            g.setColor(Color.RED);
            g.fillRect(0,0,height,width);
            g.setColor(Color.WHITE);
            g.drawLine(0,0,height,width);
            g.drawLine(0,height,width,0);
            g.drawRect(0,0,height,width);
        }
    }
    
    public static void main(String args[])
    {
        JFrame frame = new JFrame();
        frame.setSize(100,100);
        TabCloser closer = new TabCloser();
        frame.add(closer);
        frame.setVisible(true);
    }
}


--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2006, 11:49 Uhr
~Blubber2063
Gast


Du musst dir ne Referenz auf den Button merken, dann erfragst du seine Koordinaten(getBounds oder so ähnlich glaub ich) und checks beim mousemove ob der punkt in dem Button rechteck ist, und machst dann ein repaint in der passenden Farbe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.08.2006, 11:51 Uhr
~Blubber 2063
Gast


Oder wenn du den Button selbst ableitest, implementierst du für den Button nen MouseListener und machst da on Enter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: