2016-05-18 1 views
-1

Das ist mein Code ist, haben einige Teile (wie Importe, psvm, etc.) weggelassen:Java FX - Wie verwendet man eine Schaltfläche mit einem Bild in einem "if" Zustand?

in dem „btnR“ Dinge in meiner if-Anweisung
public class Proyect extends Application implements EventHandler{ 

    private HBox menu1() { 
     Image food1 = new Image (getClass().getResourceAsStream("clipboard.png")); 
     Button btnR = new Button ("R", new ImageView(food1)); 
    } 

    @Override 
    public void handle(Event event) { 
     if(event.getSource() == btnR) { 

     } 
    } 
} 

Das Problem ist mein IDE sagt, ich bin falsch (es ist rot unterstrichen).

+2

'btnR' in einem anderen Bereich ist. Wenn Sie möchten, dass es von 'handle()' aus zugänglich ist, müssen Sie es zu einer Klassenvariablen machen. – shmosel

Antwort

0

ist in der Methode menu1() definiert. Daher wird es innerhalb der Methode handle() nicht zugänglich sein. Warum definieren Sie es nicht innerhalb der Klasse als privates Datenmitglied?

Bitte verwenden Sie die Logik, wie unten erwähnt:

public class Proyect extends Application implements EventHandler{ 

private Button btnR; 

private HBox menu1() { 
    Image food1 = new Image (getClass().getResourceAsStream("clipboard.png")); 
    btnR = new Button ("R", new ImageView(food1)); 
} 

@Override 
public void handle(Event event) { 
    if(event.getSource() == btnR) { 

    } 
} 
} 
+1

@ Praven Vinny Vielen Dank! –