Hallo
Ich hab ein kleines Problem:
Ich habe eine Eventhandler registriert für das onMousePressed Event auf einer "CELL"
Das Problem is jetz das der handler nich ausgefürt wird es wird auch garnich
ers gesetzt das das Node Gepresst wird(siehe zweiter versuch in der Main)
EMenubar:
CELL:
MAINCLASS:
Ich hab ein kleines Problem:
Ich habe eine Eventhandler registriert für das onMousePressed Event auf einer "CELL"
Das Problem is jetz das der handler nich ausgefürt wird es wird auch garnich
ers gesetzt das das Node Gepresst wird(siehe zweiter versuch in der Main)
EMenubar:
Java:
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import mrtroble.launcher.main.assets.BackgroundHelper;
public class EMenuBar extends HBox{
private GridPane pn,pn2;
private int row = 0,row2 = 0;
private Scene sc;
private ELabel lab;
public EMenuBar(Scene sc) {
super();
lab = new ELabel();
lab.setVisible(false);
lab.setTextFill(Color.WHITE);
BackgroundHelper.setBackGroundColor(lab, Color.BLACK, 0, 0);
((Group)sc.getRoot()).getChildren().add(lab);
this.sc = sc;
pn = new GridPane();
pn2 = new GridPane();
this.getChildren().add(pn);
this.getChildren().add(pn2);
BackgroundHelper.setBackGroundColor(this, Color.rgb(0, 0, 0, 0.7), 0, 0);
//addAnimation();
}
public void addToFront(Cell c){
pn.add(c, row, 0);
row++;
this.rematrix();
}
public void rematrix(){
double vc = 0;
for(Node n : pn.getChildren()){
if(n instanceof Cell){
vc +=((Cell) n).getRealWidth();
}
}
pn.setPrefWidth(vc);
double vc2 = 0;
for(Node n : pn2.getChildren()){
if(n instanceof Cell){
vc2 +=((Cell) n).getRealWidth();
}
}
pn2.setPrefWidth(vc2);
this.setSpacing(sc.getWidth() - pn.getPrefWidth() - pn2.getPrefWidth());
}
public void addToBack(Cell c){
pn2.add(c, row2, 0);
row2++;
this.rematrix();
}
}
Java:
Cell close = new Cell("close2.png", "Close");
close.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println();
}
});
CELL:
Java:
package mrtroble.launcher.main.FXC;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import mrtroble.launcher.main.assets.Assets;
public class Cell extends ImageView{
private String desc;
private Runnable bl;
public Cell(String na,String desc) {
super(Assets.getFxImage(na));
this.setDescription(desc);
this.setFitWidth(40);
this.setFitHeight(40);
}
public double getRealWidth(){
return this.getFitWidth();
}
public String getDescription() {
return desc;
}
public void setDescription(String desc) {
this.desc = desc;
}
}
MAINCLASS:
Java:
package mrtroble.launcher.main;
import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.EventHandler;
import javafx.geometry.Point2D;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import mrtroble.launcher.main.FXC.Cell;
import mrtroble.launcher.main.FXC.ELabel;
import mrtroble.launcher.main.FXC.EMenuBar;
import mrtroble.launcher.main.assets.Assets;
public class TMain extends Application{
public static Init ints;
private AnimationTimer tm = null;
private AnimationTimer tmr = null;
public static void main(String[] args) {
ints = new Init();
launch(args);
}
public BooleanProperty mouse = new SimpleBooleanProperty();
private double mx,my;
@Override
public void start(Stage st) throws Exception {
Group gp = new Group();
Scene sc = new Scene(gp,1000,625);
st.setScene(sc);
st.initStyle(StageStyle.UNDECORATED);
sc.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(Util.isMouseOver(event, new Point2D(0, 0), new Point2D(sc.getWidth(), 40))){
st.setX(event.getScreenX() - mx);
st.setY(event.getScreenY() - my);
}
}
});
ImageView v = new ImageView(Assets.getFxImage("back.png"));
v.setFitHeight(sc.getHeight());
v.setFitWidth(sc.getWidth());
gp.getChildren().add(v);
EMenuBar bar = new EMenuBar(sc);
Cell close = new Cell("close2.png", "Close");
close.pressedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
if(close.isPressed()){
System.exit(0);
System.out.println("JUHU");
}else{
System.out.println("NOT");
}
}
});
bar.addToBack(close);
bar.setTranslateY(-40);
BooleanProperty smp = new SimpleBooleanProperty();
sc.setOnMouseMoved(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
boolean b = Util.isMouseOver(event, new Point2D(0, 0), new Point2D(sc.getWidth(), 40));
if(smp.getValue() != b){
smp.setValue(b);
if(smp.getValue()){
if(tm != null)tm.stop();
tm = new AnimationTimer() {
@Override
public void handle(long now) {
if(bar.getTranslateY() == 0){
tm.stop();
return;
}
if(bar.getTranslateY() + 0.5 > 0){
bar.setTranslateY(0);
}
bar.setTranslateY(bar.getTranslateY() + 1);
}
};
tm.start();
}else{
if(tm != null)tm.stop();
tm = new AnimationTimer() {
@Override
public void handle(long now) {
if(bar.getTranslateY() <= -40){
tm.stop();
return;
}
bar.setTranslateY(bar.getTranslateY() - 1);
}
};
tm.start();
}
}
}
});
gp.getChildren().add(bar);
sc.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if(Util.isMouseOver(event, new Point2D(0, 0), new Point2D(sc.getWidth(), 40))){
mx = event.getSceneX();
my = event.getSceneY();
}
}
});
GridPane pan = new GridPane();
pan.setVgap(10);
pan.setHgap(10);
pan.add(new ELabel("Username"), 0, 0);
pan.setOpacity(0);
pan.setAlignment(Pos.CENTER);
StackPane pn = new StackPane();
pn.setPrefSize(sc.getWidth(), sc.getHeight());
pn.getChildren().add(pan);
tmr = new AnimationTimer() {
@Override
public void handle(long now) {
if(pan.getOpacity() == 1){
tmr.stop();
return;
}
pan.setOpacity(pan.getOpacity() + 0.01);
}
};
tmr.start();
gp.getChildren().add(pn);
st.show();
}
}
Zuletzt bearbeitet von einem Moderator: