图形界面设计自学内容——eclipse

创建主舞台即窗口,创建一个场景和一个按钮,将按钮放在场景中,将场景放在舞台上,最后将窗口显示出来。
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()方法以运行应用程序。
	}

}

运行结果:
App14_1

创建两个舞台,在主舞台和第二舞台中各摆放一个命令按钮

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

}

运行结果:
流式面板

此外还有边界面板、网格面板类GridPane、单行面板类Hbox和单列面板类Vbox、JavaFX的辅助类(颜色类、字体类Font、图像类Image和图形显示类ImageView、JavaFX的属性绑定和绑定属性)、JavaFX的常用控件。这里博主以后补更。
发布了20 篇原创文章 · 获赞 1 · 访问量 430

猜你喜欢

转载自blog.csdn.net/XMY_UPUPUP/article/details/103404304