`
weiwei5910
  • 浏览: 27627 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

javaFx2.x 登陆及其切换界面

 
阅读更多

最近对javaFx特别感兴趣,闲暇时对着官方文档及GOOGLE学习

没有太详细的解说,但在代码中有还算较明白的注释


示例使用JDK7,开发工具为eclipse和e(rx)clipse插件

效果如下图





下面是代码


程序的入口

LoginWidthCss.class

package com.wei.table;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.wei.jdbc.JdbcUtil;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 * 登陆首页面
 * @author wangwei
 *
 */
public class LoginWidthCss extends Application {

	private Connection conn;
	private PreparedStatement ps;
	private ResultSet rs;
	
	private GridPane grid;
	public static void main(String[] args) {
	   launch(args );
	}
	
	@Override
	public void start(final Stage primaryStage) throws Exception {
		//窗口标题
		primaryStage.setTitle("JavaFX 登陆");
		//设置面板及布局
		grid = new GridPane();
		grid.setAlignment(Pos.CENTER);
		grid.setHgap(10);
		grid.setVgap(10);
		grid.setPadding(new Insets(25));
		//文本框
		Text scenetitle = new Text("Welcome");
		scenetitle.setId("welcome-text");
		grid.add(scenetitle, 0, 0, 2, 1);
		//标签
		Label userName = new Label("用户名:");
		grid.add(userName, 0, 1);
		//文本输入框
		final TextField userTextField = new TextField();
		grid.add(userTextField, 1, 1);
		
		Label passwd = new Label("密码");
		grid.add(passwd, 0, 2);
		//密码输入框
		final PasswordField passwdField = new PasswordField();
		grid.add(passwdField, 1, 2);
		//按钮及按钮布局
		Button btn = new Button("登陆");
		HBox hbBtn = new HBox(10);
		hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
		hbBtn.getChildren().add(btn);
		grid.add(hbBtn, 1, 4);
		
		//点击登陆按钮显示的提示文字
		final Text actiontarget = new Text();
		actiontarget.setId("actiontarget");
		grid.add(actiontarget, 1, 6);

		//登陆按钮单击事件
		btn.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent arg0) {
				actiontarget.setText("登陆成功");
				grid.setVisible(false);
				//表格面板
				TablePane tp = new TablePane();
				//加到场景中
				Scene tpScene = new Scene(tp,500,500);
				//切换舞台场景为表格面板
				primaryStage.setScene(tpScene);
				
			/*	//获取用户名,密码的值
				String userName = userTextField.getText();
				String passWord = passwdField.getText();
				//建立连接查询数据库
				conn = JdbcUtil.getConn();
				String sql = "select t.*, t.rowid from itcsys_user t where t.usercode='"+userName+"' and t.username='"+passWord+"'";
				try {
					ps = conn.prepareStatement(sql);
					rs = ps.executeQuery();
					if(rs.next()){
						actiontarget.setText("登陆成功");
						grid.setVisible(false);
						//表格面板
						TablePane tp = new TablePane();
						//加到场景中
						Scene tpScene = new Scene(tp,500,500);
						//切换舞台场景为表格面板
						primaryStage.setScene(tpScene);
					}else{
						actiontarget.setText("登陆失败");
					}
				} catch (SQLException e) {
					e.printStackTrace();
				}finally{
					JdbcUtil.close(rs,ps,conn);
				}*/
			}
		});
		Scene scene = new Scene(grid,300,275);
		//为场景加入CSS样式
		scene.getStylesheets().add(LoginWidthCss.class.getResource("LoginWidthCss.css").toExternalForm());
		primaryStage.setScene(scene);
		primaryStage.show();
	}
	
}


TablePane.class

package com.wei.table;

import com.wei.table.TableSample.scoreInfo;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.AnchorPane;

/**
 * 列表面板
 * @author wangwei
 *
 */
public class TablePane extends AnchorPane {
	
	public TablePane() {
		//列表的列
		TableColumn lshColumn = new TableColumn();
		//列名
		lshColumn.setText("流水号");
		//列宽
		lshColumn.setMinWidth(100);
		//该列绑定的数据
		lshColumn.setCellValueFactory(new PropertyValueFactory("lsh"));
		
		TableColumn ksrqColumn = new TableColumn();
		ksrqColumn.setText("考试日期");
		ksrqColumn.setMinWidth(100);
		ksrqColumn.setCellValueFactory(new PropertyValueFactory("ksrq"));
		
		TableColumn kscjColumn = new TableColumn();
		kscjColumn.setText("考试成绩");
		kscjColumn.setMinWidth(100);
		kscjColumn.setCellValueFactory(new PropertyValueFactory("score"));
		
		//创建一个列表
		TableView tableView = new TableView();
		//在列表中加入列
		tableView.getColumns().addAll(lshColumn,ksrqColumn,kscjColumn);
		//表格的数据源
		ObservableList<scoreInfo> data = FXCollections.observableArrayList();
		//列表赋值
		data.add(new scoreInfo("1", "2", "3"));
		//为列表绑定数据
		tableView.setItems(data);
		//把列表加到面板中
		this.getChildren().add(tableView);
	}
}


切换窗口本来想做成点击登陆按钮后,隐藏当前窗口再显示新的窗口,找了很久也没能找到方法

最终使用切换面板这么个笨方法来实现,如果大家有更好的方法,请指点


文笔不太好,附上源码

http://download.csdn.net/detail/weiwei5910/5430339




分享到:
评论

相关推荐

    javaFx登陆后切换界面

    javaFx2.x 登陆及其切换界面 示例使用JDK7,开发工具为eclipse和e(rx)clipse插件

    JavaFx 2.X 记事本

    JavaFx 2.X 记事本 需要demo的 可以找我

    JavaFX2.x 专题教程 之 事件处理

    这些行为被封装成`javafx.event.Event`类及其子类的实例。JavaFX支持多种类型的事件,包括但不限于: - `DragEvent` - `KeyEvent` - `MouseEvent` - `ScrollEvent` 每个事件类都包含了关于事件的具体信息,例如: -...

    JavaFx 2.x 地图缩放拖拽

    在JavaFX 2.x中,地图缩放和拖拽功能是构建交互式地图应用的关键部分。这个技术允许用户通过鼠标操作来改变地图的视角,放大查看细节或缩小以获取更广阔的视图,同时还能通过拖动来移动地图,查看不同区域。下面我们...

    JavaFX2.x事件处理

    - **定义**:一个事件是`javafx.event.Event`类的一个实例,或者其子类。 - **类型**:JavaFX支持多种事件类型,如`DragEvent`、`KeyEvent`、`MouseEvent`、`ScrollEvent`等。 - **特性**:每个事件类型都有自己...

    JavaFX2.x专题教程 之 布局面板

    本教程将详细介绍JavaFX 2.x版本中各种内置布局面板的使用方法,并通过实例演示如何高效地完成界面布局。 #### 1.1 内置布局面板简介 JavaFX 的布局面板设计得非常灵活,能够适应不同类型的界面需求。这些布局面板...

    JavaFX的.jar包

    JavaFX Script编程语言是Sun微系统公司开发的一种declarative,statically typed(声明性的、静态类型)脚本语言。JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。

    javafx-sdk-17.0.2-lts-windows-x64

    JavaFX SDK 17.0.2 LTS 是一个用于创建桌面和基于浏览器的富客户端应用程序的工具包,专为Windows x64平台设计。这个版本是长期支持(LTS)版本,意味着它将提供更长期的维护和支持,适合于那些需要稳定开发环境的...

    javafx 11 jar包,亲测可用

    - `javafx.fxml.jar`:FXML是JavaFX的声明式UI设计语言,用于分离界面设计和业务逻辑。 - `javafx.swing.jar`:用于JavaFX与Swing的互操作。 - `javafx-swt.jar`:如果需要在JavaFX中使用一些SWT特定的功能,此库...

    openjfx-jar.zip

    javafx.base-11.0.0-20180629.175051-1-win.jar,javafx.base-11.0.0-20180702.223831-2-linux.jar,javafx.base-11.0.0-20180702.224858-3.jar,javafx.base-11.0.0-20180702.224858-3-mac.jar,javafx.base-11.0.0-...

    TutorialsPoint JavaFX 教程.epub

    TutorialsPoint JavaFX 教程.epub

    javafx-src.zip_javaFx_退火_退火算法

    JavaFX 是一个用于创建桌面应用、移动应用和Web应用的开放源代码图形用户界面(GUI)工具包。它提供了一套丰富的UI控件、2D和3D图形处理能力,以及媒体播放支持,使得开发者可以构建出具有现代感且交互性强的应用...

    用JavaFX做的一个登录注册界面

    在JavaFX中,图片的加载和显示可以通过`javafx.scene.image.Image`类来完成。开发者需要确保图片路径正确,并且程序有权限访问。此外,考虑到性能和资源占用,对于较大的图片,可能还需要进行适当的缩放或压缩处理。...

    javafx通讯录.zip

    2. **添加个人信息**:用户可以通过界面输入新联系人的姓名、电话等信息,这些信息通常会被存储在数据结构如`ArrayList`或`ObservableList`中。JavaFX的事件处理机制允许开发者为按钮绑定事件监听器,当用户点击...

    Pro JavaFX 8.pdf

    - JavaFX中的属性体系结构及其作用。 - 如何利用绑定机制自动同步UI与数据模型。 - 高级绑定示例,包括双向绑定等技术。 #### 第5章:Building Dynamic UI Layouts in JavaFX - **目标读者**:需要创建自适应...

    Vert.X-generator是基于javafx8开发的图形界面Vert.x代码生成器

    Vert.X-generator是基于javafx8开发的图形界面Vert.x代码生成器,使用 Apache FreeMarker 作为代码文件的模板,用户可以一键将数据库中的表生成为任意风格的.java代码文件(比如经典的三层模型);该工具支持所有实现JDBC...

    Introducing.JavaFX.8.Programming.0071842551.epub

    Learn the Fundamentals of JavaFX 8 from Programming Guru Herb Schildt Introducing JavaFX 8 Programming provides a fast-paced, practical introduction to JavaFX, Java’s next-generation GUI programming...

    JavaFX 2.0 電子書 - Pro JavaFX 2

    In Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology, Jim Weaver, Weiqi Gao, Stephen Chin, Dean Iverson, and Johan Vos show you how you can use the JavaFX platform to create rich-...

    javafx-src.zip

    4. **2D和3D图形**:JavaFX提供了强大的2D和3D图形库,如javafx.scene.shape和javafx.scene.image,可以创建复杂的几何形状、图像处理以及动画效果。 5. **媒体处理**:JavaFX内建了媒体API(javafx.media),可以...

    找不到javafx、JDK中不自带javafx专用包jfxrt.jar-只要1积分

    import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Main extends ...

Global site tag (gtag.js) - Google Analytics