public class TeamsViewController implements Initializable{
// Service layer for accessing datastore
private ServiceLayer serviceLayer = new ServiceLayer();
@FXML private TableView<Team> tableView;
private TableColumn<Team, Integer> idCol;
@Override
public void initialize(URL location, ResourceBundle resources) {
tableView.getColumns().addAll(
this.createIdCol(),
this.createTeamNameCol(),
this.createButtonColumn()); // Click to show Team members
tableView.getItems().setAll(serviceLayer.getAllTeams());
}
// ......... bunch of methods to create the columns, etc.
<AnchorPane prefHeight="342.0000999999975" prefWidth="568.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="main.ui.TeamsViewController">
<children>
<TableView fx:id="tableView" maxHeight="-1.0" maxWidth="-1.0" prefHeight="282.0" prefWidth="568.0" />
</children>
</AnchorPane>
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
try {
// This shows the Team table
AnchorPane root = (AnchorPane) FXMLLoader.load(getClass().getResource("teamViewController.fxml"));
Scene scene = new Scene(root,800,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
//This will show the People table
AnchorPane people = (AnchorPane) FXMLLoader.load(getClass().getResource("peopleViewController.fxml"));
scene.setRoot(people);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
log.severe(e.getMessage());
e.printStackTrace();
}
}
Teams表的最后一列有一个按钮。所以,我卡住的地方是:当我点击我的团队表中的“详细信息”按钮时,我如何显示团队成员表(人员)?提前谢谢你的提示!
由于您对两个表视图都使用了fxml,您需要在“详细信息”按钮的click事件时切换这些fxml。
您还需要更改应用程序文件以更改FXMLS。
您可以使用此代码
public void start(Stage primaryStage) {
try {
stage = primaryStage;
gotohome();
primaryStage.show();
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void gotohome() {
try {
FXMLController home = (FXMLController) replaceSceneContent("Homepage.fxml");
home.setApp(this);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void gotoproductwise() {
try {
SampleController product_wise = (SampleController) replaceSceneContent("/product_wise/product_wise.fxml");
product_wise.setApp(this);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
private Initializable replaceSceneContent(String fxml) throws Exception {
FXMLLoader loader = new FXMLLoader();
InputStream in = Main.class.getResourceAsStream(fxml);
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(Main.class.getResource(fxml));
AnchorPane page;
try {
page = (AnchorPane) loader.load(in);
} finally {
in.close();
}
// Store the stage width and height in case the user has resized the window
double stageWidth = stage.getWidth();
if (!Double.isNaN(stageWidth)) {
stageWidth -= (stage.getWidth() - stage.getScene().getWidth());
}
double stageHeight = stage.getHeight();
if (!Double.isNaN(stageHeight)) {
stageHeight -= (stage.getHeight() - stage.getScene().getHeight());
}
Scene scene = new Scene(page);
if (!Double.isNaN(stageWidth)) {
page.setPrefWidth(stageWidth);
}
if (!Double.isNaN(stageHeight)) {
page.setPrefHeight(stageHeight);
}
// stage.setOpacity(1);
stage.setScene(scene);
stage.sizeToScene();
return (Initializable) loader.getController();
}
private Main application;
public void setApp(Main application) {
this.application=application;
}
我正在使用javafx创建一个扫雷克隆,如果有人玩过原始游戏,他们可能会记得当你按下一个磁贴并四处移动时,其他磁贴的行为就好像它们也在被按下一样...如果你放手-即使你最初按下的是一个完全不同的节点,你鼠标当前所在的节点也会被点击。我很难重新创建这个,我需要一些帮助。 我正在使用全局事件处理程序类,我不太确定这是好是坏......但是,让我的克隆的事件单独处理感觉很好。我尝试过在事件发生的节点上使
我想自定义tableview的按钮,但是当我在initialize方法中获得show-hide-columns-button时,它是空的。有一种方法可以获得show-hide-columns-按钮。
我知道已经有一些关于相对路径的问题,但是我总是无法让JavaFX FXML加载器从包本身以外的包加载资源。 加载类位于包gui.controllers中,fxml文件位于包中。我现在应该写什么: 提前谢谢
该部分 API 将帮助您监听光环板上的各类事件,学习如何使用广播进行线程间的通信,控制脚本的停止,以写出多线程程序。 省略代码中的halocode 注意:该部分 API 省略了“halocode.”,本篇提及的所有 API 均省略了“halocode.” ,如 led_driver.off( )实际为halocode.led_driver.off()。mbuild 电子模块平台的所有功能均维护在h
我有一个问题,我不能从一个对象加载3个属性显示在表视图上。我有一个付款对象,它由一个受益人对象(包括3个字符串-name、accountnumber和code)、一个金额字符串和一个引用字符串组成。如果这些项目都是同一个对象的一部分,我可以查看它们,但是当我将它们拆分时,它不会引起问题,并且单元格是空的。 每次我尝试将付款加载到tableView时,只有金额和引用是可见的。我尝试使用Propert
资源事件 beforeunload 事件 beforeunload事件在窗口、文档、各种资源将要卸载前触发。它可以用来防止用户不小心卸载资源。 如果该事件对象的returnValue属性是一个非空字符串,那么浏览器就会弹出一个对话框,询问用户是否要卸载该资源。但是,用户指定的字符串可能无法显示,浏览器会展示预定义的字符串。如果用户点击“取消”按钮,资源就不会卸载。 window.addEventL