G
Gelöschtes Mitglied 65838
Gast
Java:
package view;
import java.io.File;
import java.net.MalformedURLException;
import javafx.event.EventTarget;
import javafx.geometry.Insets;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextArea;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import model.CardsModel;
public class LeftInfoBox extends VBox{
private Button pictureInfo = new Button();
private Button strengthValue = new Button("Strength");
private Button healthValue = new Button("Health");
private Button typeInfo = new Button("Type");
private Button levelInfo = new Button("Level");
private Button artistInfo = new Button();
private TextArea effectText = new TextArea();
private HBox hpAstr = new HBox(healthValue,strengthValue);
private HBox tyAart = new HBox(typeInfo,levelInfo);
public LeftInfoBox() {
effectText.setEditable(false);
try {
this.getStylesheets().add(new File("leftInfoBoxStyle.css").toURI().toURL().toExternalForm());
} catch (MalformedURLException e) {
e.printStackTrace();
}
artistInfo.setId("artistinfo");
pictureInfo.setId("pictureInfo");
this.getChildren().addAll(pictureInfo,hpAstr,tyAart,artistInfo,effectText);
}
@SuppressWarnings("preview")
public void setHoverHandler(Node layout) {
layout.addEventFilter(MouseEvent.MOUSE_ENTERED_TARGET, e -> {
if( e.getTarget() instanceof CardsModel cardModel) {
this.pictureInfo.setGraphic(cardModel.getCardImage());
if(cardModel.getHealth()>-1) healthValue.setText("HP: "+cardModel.getHealth());
else healthValue.setText("HP: -/-");
if(cardModel.getStrength()>-1) strengthValue.setText("STR: "+cardModel.getStrength());
else strengthValue.setText("HP: -/-");
levelInfo.setText("LVL: "+cardModel.getLevel());
typeInfo.setText("TYPE: "+cardModel.getType());
artistInfo.setText("ARTIST: "+cardModel.getArtist());
effectText.setText("Effect:\n"+cardModel.getEffectString());
}
});
}
}
1. Mein Code funktioniert wie gewünscht das is ja schonmal wunderbärchen
2. es geht um den setHoverHandler
3. Ich hab bei den buttons die die werte immer einen String in diesem Format " FixAttribut: veränderbarerWert "
4. hier ändere ich das FixAttribut immer mit was eig nicht so notwendig wäre das bleibt IMMER gleich
5. ich weis dass ein String statisch ist und bei veränderungen eine neue Referenz erstellt wird aber gibts Perfomance technisch eine Verbesserung die man einbauen kann
Grund für das -> der Handler wird an sich während dem Spiel permanent benutzt und der muss einfach flutschen ohne Probleme weil der der "zeitaufwändigste Handler" handler im Programm ist weil er sehr oft benutzt wird