最近对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
分享到:
相关推荐
javaFx2.x 登陆及其切换界面 示例使用JDK7,开发工具为eclipse和e(rx)clipse插件
JavaFx 2.X 记事本 需要demo的 可以找我
JavaFx 2.x 地图缩放拖拽 实现了图片的放大 拖拽 有要的可以找我,实现定点标记,定点放大
JavaFX2.x专题教程 之 布局面板,完全掌握界面布局控件的应用
JavaFX2.x 专题教程 之 事件处理 过滤器、处理器、事件处理链表
详细讲解javaFX2.X的事件处理.交互方式,JavaFX上手比较容易精通难
JavaFX Script编程语言是Sun微系统公司开发的一种declarative,statically typed(声明性的、静态类型)脚本语言。JavaFX技术有着良好的前景,包括可以直接调用Java API的能力。
TutorialsPoint JavaFX 教程.epub
Pro JavaFX 8.pdf英文版标签版
Vert.X-generator是基于javafx8开发的图形界面Vert.x代码生成器,使用 Apache FreeMarker 作为代码文件的模板,用户可以一键将数据库中的表生成为任意风格的.java代码文件(比如经典的三层模型);该工具支持所有实现JDBC...
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...
Packt.JavaFX.1.2.Application.Development.Cookbook
JavaFX.Developing.Rich.Internet.Applications
Abstract Java game library based on JavaFX. 基于JavaFX的抽象Java游戏库 Abstract Java game library based on JavaFX. 基于JavaFX的抽象Java游戏库 Abstract Java game library based on JavaFX. 基于JavaFX的...
JavaFx图形界面.rarJavaFx图形界面.rarJavaFx图形界面.rarJavaFx图形界面.rar
javafx的单.java文件的打字游戏,识别数字,字母 javafx的单.java文件的打字游戏,识别数字,字母 javafx的单.java文件的打字游戏,识别数字,字母 javafx的单.java文件的打字游戏,识别数字,字母 javafx的单.java...
Best JavaFX development eBook.
自己做的东西,第一次接错,看了点视频就做了,尤其是那个图片,还要他规定的格式,很难搞,要下个软件给ps装插件,再用ps转格式
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-...
Apress.JavaFX.2.0.Introduction.by.Example.2011