JAVA图形界面设计

时间:2024-04-15 15:50:13

Java图形界面设计,有一个总舞台(stage)包含场景(scence),场景包含面板(pane),面板包含控件和对话框等等…场景也可以直接包含控件,不过我们一般不这么做,一般都是将节点放入面板中。

前提

1.最初导入:

import javafx.application.Application;	//应用程序类
import javafx.stage.Stage;		//舞台
import javafx.scence.Scence;		//场景

2.继承Application类都需要重写start方法

public class qwe extenfs Application{
	@Override
	public void start(Stage stage){
	
	}
	public static void main(String[] args){
		Application.lunch(args);
	}
}

舞台(stage)

1.stage是在重写start方法内直接创建的,也可以创建第二舞台。

stage.setTitle("舞台");
stage.setScene(scene);	//设置场景
stage.show();		//显示舞台

场景(scence)

Scence scence = new Scence();		//括号内可以直接添加根节点,一般都是一个面板,也可以是控件。
//构造方法:设置根节点;根节点 长宽;根结点 背景颜色;根节点 长宽 背景颜色。
scence.setFill();	//设置背景颜色
scence.setRoot();	//设置根节点


面板

面板是其他分面板的父类,所以说他的方法可以被其子类调用。
一个节点只能添加到一个面板内

import javafx.scene.layout.Pane;

Pane pan = new Pane();		//也可以在括号内写入奇子类

pan.setPadding()		//设置面板内侧四周空白间距(Insets)

pan.setPrefSize()		//设置面板的长宽

pan.setRotate()		//设置旋转角度,正角顺时针,负角逆时针

pan.setTranslateX()		//沿X轴方向平移一些像素,X可以换为Y,Z

pan.getLayoutX()		//获得X坐标,X可以换为Y

pan.setCache()			//设置缓冲(一般在图片那里使用)

pan.getChildren().addAll()		//添加孩子

2、栈面板
和数据结构里的栈一样,先进入的节点在下面,后进入的在上面,会造成覆盖。

import javafx.scene.layout.StackPane;

StackPane st = new StackPane();		//括号内亦可以加入孩子

st.setMargin();		//设置孩子边缘外侧空白间距(Insets)
st.setAligement()		//设置节点的对齐方式,可以指定某一个节点,否则为全部节点(pos)

//pane内的方法也都可以用。

3.流式面板
顾名思义,根水流一样,可以根据窗口的大小而自动改变节点的排列(可以设置按行或者按列)

import javafx.scence.layout.FlowPane;		

FlowPane fl = new FlowPane();

fl.setHgap()
fl.setVgap()		//设置水平和垂直距离

fl.setOrientation()		//设置节点的排放
//需要导入:import geometry.Orentation;
//Otentation.HORIZONTAL水平,Otentation.VERTICAL竖直

4.边界面板
上下左右中,五个位置。可以在某个位置上不设置东西。

import javafx.scene.layout.BoderPane;

BoderPane bd = new BoderPane();

bd.setTop()
bd.setBottom()
bd.setLeft()
bd.setRight()
bd.setCenter()
//设置各个位置的节点

bd.setAligement()		//孩子的节点排列方式

5.网络面板
就像是一张大网格,可以设置每个节点的位置。

import javafx.scene.layout.GridPane;

GridPane gd = new GridPane();

gd.setHgap()
gd.setVgap()		//设置节点的水平和竖直间距
gd.add(node,x,y(,m,n))		//添加node到x,y位置,占m列n行
gd.addColumn(x,node...)		//将所有节点插入到x列
gd.addRow(y,node...)		//将所有节点插入到y行

//set设置,get获得
//ColumnIndex,列
//RowIndex,行

5.单行(列)面板
顾名思义啦,只有一行或者一列。

import javafx.scene.layout.HBox;	//VBox列

HBox hb = new HBox();	//添加每个节点间距;添加所有孩子;前两个合体

hb.setSpacing()		//设置间距
hb.setMargin()		//设置节点外边距
hb.setaligement()	//整体节点排列方式

6.Java css
设置面板或者按钮的颜色

.setStyle(" ");
-fx-border-color:边框颜色
-fx-background-color:背景颜色
-fx-opacity:透明度(0~1)



辅助类

包括颜色,字体,图像

import javafx.scene.paint.Color;	//一般都是调用枚举
import javafx.scene.text.Font;		//暂时不会用

图像

import javafx.scene.image.Image;
import javafx.scene.image.ImageView;

Image im = new Image("路径");
ImageView ima = new ImageView(im);

ima.setImage();		//设置图像
ima.setFitwidth();		//设置宽
ima.setFitHeigh()
ima.setPerserveRatio()		//设置是否保持缩放
ima.setSmooth()		//设置平滑算法
ima.setCache()		//设置缓冲