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使用两个按钮进行一些小操作我唯一的意思是在按钮中添加图像所以请纠正这个程序,并给我正确的方法来做到这一点。
答案 0 :(得分:2)
您不能在场景图中的两个不同位置拥有相同的节点。创建一个图像(图像不是节点,它们只是封装图像数据),并从图像创建两个图像视图。
此外,Image
和ImageView
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的情况下实例化按钮。