Autor Beitrag
LINUS19
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 156
Erhaltene Danke: 1

Windows 10, 7
Java(Eclipse)
BeitragVerfasst: Mi 20.12.17 19:06 
Hallo,
wie bekomme ich es hin das die Koordinaten von der Maus an die paint methode übermittelt werden und erst dort gezeichnet wird( bei einem Frame)

Ich hatte das nämlich so gemacht:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 class Maus extends MouseAdapter {                 
     public void mousePressed(MouseEvent event) {     
       
       Graphics g = getGraphics();             
       int px = event.getX();
       int py = event.getY();              
       g.setColor(Color.RED);                                               
       g.fillRect(((int)px/bx)*bx, ((int)py/hy)*hy, bx, hy); // Quadrate werden gefärbt bei Mausklick               
     }  
     }


Das Problem dabei ist aber das wenn man das Fenster verkleinert und dann wieder aufmacht, das die Quadrate dann nicht mehr gefärbt sind.

LG
LINUS19

Moderiert von user profile iconTh69: Titel geändert (war nur "Java GUI").
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Mi 20.12.17 19:29 
Zitat:
Das Problem dabei ist aber das wenn man das Fenster verkleinert und dann wieder aufmacht, das die Quadrate dann nicht mehr gefärbt sind.
theoretisch brauchst du dafür ein 'OnResize' Event welches aufgerufen wird, wenn das Fenster skaliert wird. Ich empfehle mal danach zu suchen (zusammen mit deiner Grafik-lib logischerweise)

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 21.12.17 10:35 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: LINUS19
LINUS19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 156
Erhaltene Danke: 1

Windows 10, 7
Java(Eclipse)
BeitragVerfasst: Do 21.12.17 18:20 
Hallo,
Ich habe das ganze jetzt so gemacht, es funktioniert aber immer noch nicht. Auf die Klicks wird reagiert dann wird nämlich true ausgegeben, aber die Rechtecke werden immer noch nicht gefärbt.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
boolean clicked=false;
Point p=new Point();

public void paint(Graphics g) {
  
  
       if(clicked==true)
       g.setColor(Color.RED);                                                
      g.fillRect(((int)p.x/bx)*bx, ((int)p.y/hy)*hy, bx, hy);
   
   }

public void mousePressed(MouseEvent event) {     
      clicked=true;
      System.out.println(clicked); // Auf die Klicks wird reagiert                                 
       p.x=getX();
       p.y=getY();      
     repaint();         
       }
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 22.12.17 02:06 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: LINUS19
LINUS19 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 156
Erhaltene Danke: 1

Windows 10, 7
Java(Eclipse)
BeitragVerfasst: Fr 22.12.17 11:27 
Danke dir.
Hab nur noch 2 Fragen.
1 .Warum muss die Methode ùberschrieben werden?
2.Wieso formMousePressed, hab sonst nur MousePressed verwendet.

LG
LINUS19
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 22.12.17 11:55 
- Nachträglich durch die Entwickler-Ecke gelöscht -