2017-06-07 6 views
0
enter code here 

package buttonfx; 

/** 
* 
* @author 1407305 
*/ 
      import javafx.application.*; 
      import javafx.event.*; 
      import javafx.scene.*; 
      import javafx.scene.control.*; 
      import javafx.scene.image.Image; 
      import javafx.scene.image.ImageView; 
      import javafx.scene.layout.*; 
      import javafx.stage.*; 
      public class Buttonfx extends Application { 
      Label l=new Label("press the button"); // adding label 
    public void start(Stage mystage) throws Exception //starting mystage        
      { 
      mystage.setTitle(("Button new gen")); 
      FlowPane f=new FlowPane(); //creating flowpane 
      // Pane f=new Pane(); 
      Scene myscene=new Scene(f, 500,300); 
      mystage.setScene(myscene); //setting scene to stage 
      ImageView imageDecline = new ImageView("C:\\Users\\kiit\\Documents\\icons\\colour.png"); 
      Button b=new Button("alpha" , imageDecline); 
      Button b1=new Button("Beta" , imageDecline) ; 
      b.setOnAction(MEHANDLER1); 
      b1.setOnAction(MEHANDLER1); 
      b.setLayoutX(200); 
      b.setLayoutY(100); 
      f.getChildren().addAll(l , b, b1); 
      mystage.show(); 
      } 
      EventHandler<ActionEvent> MEHANDLER1 = new EventHandler<ActionEvent>() 
      { 
      public void handle(ActionEvent ae) 
      { 
      String str=((Button)ae.getTarget()).getText(); 
      if(str.equals("Alpha")) 
      { 
      l.setText(str + " was pressed"); 
      } 
      if (str.equals("Beta")) 
      { 
      l.setText(str + " was pressed"); 
      } 
      } 
      }; 
      public static void main(String[] args) throws Exception { 
      launch(args); 
      } 
      }  

In diesem Code kann ich Bild in Button nicht einfügen. In diesem m mit zwei Tasten, die einige kleine Operation tun, meine einzige Absicht ist, Bild in beide Taste hinzufügen, also bitte korrigieren Sie dieses Programm, und geben Sie mir die richtige Weise, es zu tun.Wie füge ich Bild in Knopf mit Text hinzu?

+0

Veröffentlichen Sie immer die vollständige Stapelüberwachung in der Frage, wenn Ihr Code eine Ausnahme auslöst. –

Antwort

-1

versuchen, den Code

b1.setGraphic(imageDecline); 
b2.setGraphic(imageDecline); 

und die Tasten ohne die Imageview instanziiert.

+0

nein nicht passiert es zeigt Ausnahme in Anwendung Startmethode. – Ravi

+0

Sind Sie sicher, dass Ihre URL im ImageView gut ist? Manchmal ist es einfacher, ein Image zu instanziieren und das Image dann in den ImageView-Konstruktor zu übernehmen. – JoshKopen

+0

ja Kumpel m sicher habe ich es überprüft. es wirft immer eine Ausnahme auf, aber warum weiß ich es nicht. Wenn also eine Störung in einer anderen Leitung vorliegt, beheben Sie diese bitte. und danke dir. – Ravi

1

Sie können nicht denselben Knoten an zwei verschiedenen Stellen im Szenegraph haben. Erstellen Sie ein Bild (Bilder sind keine Knoten, sie kapseln nur die Bilddaten ein) und erstellen Sie zwei Bildansichten aus dem Bild.

Zusätzlich wird die Image und ImageView constructors erwarten, dass die URL des Bildes, kein Pfad zu einer Datei.

File imageFile = new File("C:/Users/kiit/Documents/icons/colour.png"); 
Image imageDecline = new Image(imageFile.toURI().toString()); 
Button b=new Button("alpha" , new ImageView(imageDecline)); 
Button b1=new Button("Beta" , new ImageView(imageDecline)) ; 
Verwandte Themen