目录
Java 前端
一、用Scenebuilder做一个简单的QQ登录页面
1、组件介绍
2、将Scenebuilde生成的文件QQ.窗口.fxml存到项目里
二、在idea中创建一个Java class文件用来控制该fxml文件
1、创建(idea和Scenebuilder中的Controller名字保持一致
2、View_controler里导入Scenebuilder里自动生成的代码
三、加载fxml文件
1、类方法
2、对象方法
直接按照写项目的步骤一步一步学吧,边学边敲
首先要有一个登录界面的窗口,开始Java Web前端
Java 前端
Accordion:复合标题面板的布局容器。
Accordion(empty):复合标题面板的布局容器,没有Anchor锚布局面板。
AnchorPane:锚布局,组件可以在布局中的任何位置。
BorderPane:边界布局,分为TOP、LEFT、CENTER、RIGHT、BOTTOM五个区域。
FlowPane:流布局,从左到右依次排列,放不下时就换行继续排列。
GridPane:网格布局,所有控件或容器放到相应的网格中。
HBox:水平盒子,里面的控件呈水平排列,和VBox垂直盒子相对应。
Pane:所有容器Pane面板类的父类,基本容器面板。
ScrollPane:滚动面板容器。
ScrollPane(empty):滚动面板容器控件,没有AnchorPane控件,可以自己添加其他容器控件。
SplitPane(empty):分割面板。
SplitPane(horizontal):水平分割面板容器控件,有一个垂直分隔条。
SplitPane(vertical):垂直分割面板容器控件,有一个水平分隔条。
StackPane:层叠面板容器,组件层叠放置。
Tab:Tab控件,与TabPane一起使用。
TabPane:Tab面板,可以切换Tab选项来切换不同的内容。
TabPane(empty):没有AnchorPane,可以自己添加容器面板。
TextFlow(FX8):也是一个容器控件,一般同Text一起使用。
TilePane:类似于FlowPane的容器。
TitledPane:折叠容器面板,可以折叠面板内容。
TitledPane(empty):没有AnchorPane,可以自己设置容器控件。
ToolBar:工具栏控件。
VBox:垂直布局容器控件,控件垂直排列。
Ctrl+S保存,找到项目位置,找到相应的包的位置,保存到里面
fxml不是java文件, ,他需要一个controller来控制
(位于Scenebuilder中右侧最下面的一个下拉菜单,必须标明该controller在哪个包
代码位置:
在Scenebuilder->右上角view下拉菜单->Show Sample Controller Skeleton
注意Scenebuilder里自动生成的代码还需要按照需求敲代码
比如创建窗口
public static Scene show() throws IOException {
URL xmlRes = view_controler.class.getResource("QQ.scream/QQwindows.fxml");
assert (xmlRes != null);
AnchorPane ap = FXMLLoader.load(xmlRes);
return new Scene(ap,640,480);
}
还有触动登录、注册、忘记密码等按键时给出的反应(后端、我还没写
(前面几个步骤都正确的话在controller里就会表现出已连接的状态)
类方法比较简单快捷,代码
public class QQ_App extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("QQwindows.fxml"));
primaryStage.setTitle("QQ");
primaryStage.setScene(new Scene(root, 416, 304));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
步骤
1、创建对象
2、设置BuilderFactory
3、设置路径基准
4、对象方法的参数是InputStream,返回值是Object
5、得到Controller
代码如下:
private Initializable replaceSceneContent(String fxml) throws Exception {
FXMLLoader loader = new FXMLLoader();
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(Main.class.getResource(fxml));
try {
InputStream in = Main.class.getResourceAsStream(fxml);
AnchorPane page = (AnchorPane) loader.load(in);
InputStream,返回值是Object
Scene scene = new Scene(page, 800, 600);
stage.setScene(scene);
stage.sizeToScene();
return (Initializable) loader.getController();
}
finally {
in.close();
return null;
}
}