Hovern möglich?

Status
Nicht offen für weitere Antworten.

A3XX

Bekanntes Mitglied
Hi

Ich habe mir heute ein kleines Schiffeversenken Spiel programmiert. Dabei kann man praktisch alles selber einstellen und die eigentlichen Felder des Spielfelds entsprechen Feldern in Arrays. Gezeichnet werden die Felder mittels g.drawRect, getroffene Felder und eigene Schiffe werden mittels g.fillRect "ausgemalt". etc.

Schiessen kann man, indem man auf ein Feld klickt, auf welches man noch nicht geschossen hat (logisch).

Nun möchte ich, dass wenn man über Felder fährt, auf die man noch nicht geschossen hat, diese Felder eingefärbt werden.

Ich hab jetzt das mal mit nem MouseMotionListener probiert. Also die Position und so stimmt sicher alles. Nur das einfärben kapier ich nicht. Die Koordinaten der Felder hab ich aber eben, wie färbe ich sie ein? Ich hab mal versucht dieses Feld mittels g.FillRect zu füllen und dann mittels repaint() das einzufärben. Abgesehen davon dass es sowieso nicht geht ist das sicher auch zu aufwendig oder? Vorallem müsste man dann e wieder alles repainten wenn man das Feld verlässt. Kann sicher ne Performancebremse werden.

Also kurz: Wie kann ich das Hovern ermöglichen?!
 

0xdeadbeef

Top Contributor
FillRect dürfte aber die sinnvollste Lösung sein. Du solltest natürlich nur beim Eintritt in ein Feld und beim Verlassen neu zeichne, aber soviel Performance sollte das nicht kosten...
Könntest auch eine kleine zeitliche Verzögerung einbauen: also wenn man sich länger als 100ms in einem Feld aufhält, wird es markiert. Dadurch mußt Du bei schnellen Mausbewegungen nicht alle überstrichenen Felder neu malen.
 
B

Beni

Gast
Du musst sowieso alles in einer paint-Methode zeichnen, und nicht davor.

Setz dir eine Variable, welches Feld selektiert ist, und zeichne entsprechend:
Code:
public class Sea extends JComponent{
  private int x, y;

  public void mouseMoved( MouseEvent e ){
    x = e.getX();
    y = e.getY();
  }

  public void paintComponent( Graphics g ){
    for( int i = 0; i < 10; i++ ){
      for( int j = 0; j < 10; j++ ){
        if( i == x && j == y )
          g.setColor( Color.RED );
        else
          g.setColor( Color.BLUE );

        g.fillRect( 10*i, 10*j, 10, 10 );
      }
    }
  }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
G JavaFX Scene ausdrucken nicht möglich, Seite leer AWT, Swing, JavaFX & SWT 5
ZH1896ZH MineSweeper Projekt: Testen nicht möglich AWT, Swing, JavaFX & SWT 6
L JavaFX WebView Erstellung nicht möglich AWT, Swing, JavaFX & SWT 4
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
A Swing CardLayout - kein Wechsel möglich AWT, Swing, JavaFX & SWT 5
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Java FX FX installieren nicht möglich (Juno) AWT, Swing, JavaFX & SWT 4
C JavaFx TabelView - hintergrundfarbe möglich? AWT, Swing, JavaFX & SWT 1
A JFace Wizard: Ist es möglich eine Page zu löschen? AWT, Swing, JavaFX & SWT 2
P Swing Klick in Tabelle nicht möglich AWT, Swing, JavaFX & SWT 0
S 2D-Grafik JavaScript Visualisierung in Swing, ist das möglich? AWT, Swing, JavaFX & SWT 5
K Viele Textfield mit Hilfe eines MousListener leeren - möglich? AWT, Swing, JavaFX & SWT 8
M JFrame + JNA/aero modul - GUI Elemente so möglich? AWT, Swing, JavaFX & SWT 28
N Swing Netbeans 7.1 keine DesktopApplication mehr möglich ? AWT, Swing, JavaFX & SWT 15
S SWT Anzeigen einer lokalen HTML-Seite im Browser Widget über RAP nicht möglich AWT, Swing, JavaFX & SWT 3
A SWT DateTime Calendar - Nur ab Datum xy selektierbar möglich? AWT, Swing, JavaFX & SWT 2
M verschieben der Objekte in JPanel nur stückchenweise möglich AWT, Swing, JavaFX & SWT 14
M JFileChooser Abfangen des DateiTypen möglich?? AWT, Swing, JavaFX & SWT 5
T JFileChooser - "Öffnen-Button" aktivieren/deaktivieren möglich??? AWT, Swing, JavaFX & SWT 2
X Einem JFrame einen Dialog als Parent setzen. Möglich? AWT, Swing, JavaFX & SWT 4
bluerob Nach RowSorter -> Keine Tabellenüberschreibung möglich AWT, Swing, JavaFX & SWT 7
B 2D-Grafik BBCode möglich? AWT, Swing, JavaFX & SWT 2
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
Fu3L Keine Transparenten JTextComponents möglich mit Nimbus L&F? AWT, Swing, JavaFX & SWT 5
S Würfelnetz in Java ausgeben möglich? AWT, Swing, JavaFX & SWT 4
jeppi Fonts: Schriftgrößen skalierbarer Fonts wirklich nur als integer möglich? AWT, Swing, JavaFX & SWT 5
philipp Ändern des Inhalts eines Containers nicht möglich AWT, Swing, JavaFX & SWT 2
X Swing JList -> Daten anders darstellen als im Model hinterlegt -> möglich ? AWT, Swing, JavaFX & SWT 9
H Swing Ist das hier möglich? AWT, Swing, JavaFX & SWT 13
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
hdi Observer-Pattern bei JPanel nicht möglich? AWT, Swing, JavaFX & SWT 7
0 JMenuItem nicht in zwei JMenus möglich? AWT, Swing, JavaFX & SWT 2
S definierte Größe von contentPane / JPanel möglich? AWT, Swing, JavaFX & SWT 4
I In JFrame zeichnen möglich? AWT, Swing, JavaFX & SWT 3
M GridLayout mit fester Größe möglich? AWT, Swing, JavaFX & SWT 3
G JList hover möglich? AWT, Swing, JavaFX & SWT 2
I Ist das möglich (JTable) AWT, Swing, JavaFX & SWT 19
D Robot: Screenshot vom Desktop Hintergrund möglich ? AWT, Swing, JavaFX & SWT 3
A Tabbed Pane ohne Tabs? - möglich? AWT, Swing, JavaFX & SWT 4
V JTextField - Mehrfachselektion und Eingabe möglich? AWT, Swing, JavaFX & SWT 2
C Umlaute mal möglich, mal nicht AWT, Swing, JavaFX & SWT 2
raptorrs J2D paintComponent: Nur ganzzahlige (-int) Werte möglich? AWT, Swing, JavaFX & SWT 3
J Taskleisten-Eintrag: Ohne JDialog || JFrame möglich ? AWT, Swing, JavaFX & SWT 5
B Setzen von Position > 90 bei JScrollbar nicht möglich AWT, Swing, JavaFX & SWT 3
J "Fading" JDialog möglich? AWT, Swing, JavaFX & SWT 14
G JInternalFrame mit Doppelklick schließen möglich? AWT, Swing, JavaFX & SWT 2
G JTable: Auf Tasten reagieren möglich? AWT, Swing, JavaFX & SWT 2
J jTabbedPane ohne Tabs möglich? AWT, Swing, JavaFX & SWT 5
D Ist es möglich ein solches Layout umzusetzen? (bild inside) AWT, Swing, JavaFX & SWT 3
P Zeichnen nur von oben links nach unten rechts möglich AWT, Swing, JavaFX & SWT 4
E [KeyListener] unterdrücken möglich? AWT, Swing, JavaFX & SWT 3
D File verschieben. In java möglich? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben