创建主舞台即窗口,创建一个场景和一个按钮,将按钮放在场景中,将场景放在舞台上,最后将窗口显示出来。
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
public class App14_1 extends Application{
public void start(Stage primaryStage)//定义主舞台为primaryStage的start()方法
{
Button bt=new Button("我是按钮");//创建命令按钮
Scene scene=new Scene(bt,210,80);//创建210*80的场景并将bt放入其中。
primaryStage.setTitle("我的JavaFX窗口");//设置窗口的标题
primaryStage.setScene(scene);//将场景scene放入主舞台中
primaryStage.show();//显示主舞台,舞台默认是不显示的,舞台对象必须调用自己的show()方法才能将窗口显示出来。
}
public static void main(String[] args) {
Application.launch(args);//启动独立的JavaFx程序,当有main()方法的时候,该方法必须在ain()方法中调用才会启动.当没有main()方法的时候,JVM将自动调用launch()方法以运行应用程序。
}
}
运行结果:
创建两个舞台,在主舞台和第二舞台中各摆放一个命令按钮
import javafx.application.Application;
import javafx.stage.Stage;
import sun.applet.Main;
import javafx.scene.Scene;
import javafx.scene.control.Button;
public class HWHWHW extends Application{
@Override//强调必须覆盖下面这个父类中的方法。
public void start(Stage primaryStage)//定义主舞台为primaryStage的start()方法
{
Button bt=new Button("我是按钮");//创建命令按钮
Scene scene=new Scene(bt,210,80);//创建210*80的场景并将bt放入其中。
primaryStage.setTitle("我是主舞台");//设置窗口的标题
primaryStage.setScene(scene);//将场景scene放入主舞台中
primaryStage.show();//显示主舞台
Stage stage=new Stage();//创建一个新舞台stage
stage.setAlwaysOnTop(true);//设置stage为顶层窗口
stage.setTitle("我是第二舞台");
Button bt1=new Button("我也是按钮");
stage.setScene(new Scene(bt1,180,100));//这是将场景放入舞台的代码的优化
stage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
运行结果:
创建栈面板,将在其上放置两个按钮,并应样式属性设置按钮和栈面板的外观样式
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
public class App14_3 extends Application{
Button bt=new Button("确定");//创建命令按钮
@Override//强调必须覆盖下面这个父类中的方法。
public void start(Stage primaryStage)//定义主舞台为primaryStage的start()方法
{
StackPane sPane=new StackPane();//创建栈面板对象
bt.setStyle("-fx- border-color:blue");//设置按钮的边框颜色为蓝色
Button bt1=new Button("我也是按钮");
bt1.setPrefSize(80, 50);//设置按钮的优先大小,即自定义按钮的大小
bt1.setStyle("-fx-border-color:green");//设置bt1按钮的边框颜色为绿色
bt1.setRotate(-45);//将按钮逆时针旋转45度
sPane.getChildren().addAll(bt1,bt);//将按钮加入当栈面板中
sPane.setRotate(45);//设置将栈面板顺时针旋转45度
sPane.setStyle("-fx-border-color:red; -fx-background-color:lightgray");
Scene scene=new Scene(sPane,180,100);
primaryStage.setTitle("栈面板");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
运行结果:
创建流式面板,将按钮放入其中,然后再将流式面板加入场景中
import java.awt.FlowLayout;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.StackPane;
import javafx.geometry.Orientation;
import javafx.geometry.Insets;
public class App14_3 extends Application{
Button[] bt=new Button[6];//创建按钮数组
@Override//强调必须覆盖下面这个父类中的方法。
public void start(Stage primaryStage)//定义主舞台为primaryStage的start()方法
{
FlowPane rootNode= new FlowPane();//创建流式面板对象
rootNode.setOrientation(Orientation.HORIZONTAL);//设置节点水平摆放
rootNode.setPadding(new Insets(12,13,14,15));//设置面板边缘四周内侧空白的距离,顶部为12,右部为13,下部为14,左部为15.
rootNode.setHgap(8);//设置面板上节点之间的水平间距为8像素
rootNode.setVgap(5);//设置面板上节点之间的垂直间距为5像素
for(int i=0;i<bt.length;i++)
{
bt[i]=new Button("按钮"+(i+1));
rootNode.getChildren().add(bt[i]);//将命令按钮bt[i]放入流式面板中
}
Scene scene=new Scene(rootNode,200,80);
primaryStage.setTitle("流式面板");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
运行结果: