如何在带有文字的按钮中添加图片?

时间:2017-06-07 19:00:53

标签: javafx

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); 
          }
          }     

在此代码中,我无法在按钮中插入图像。在这个m使用两个按钮进行一些小操作我唯一的意思是在按钮中添加图像所以请纠正这个程序,并给我正确的方法来做到这一点。

2 个答案:

答案 0 :(得分:2)

您不能在场景图中的两个不同位置拥有相同的节点。创建一个图像(图像不是节点,它们只是封装图像数据),并从图像创建两个图像视图。

此外,ImageImageView constructors期待图片的网址,而不是文件的路径。

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)) ;

答案 1 :(得分:-2)

尝试代码

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

并在没有imageView的情况下实例化按钮。