热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java中如何传递参数给控制器_在两个JavaFX控制器之间传递参数

我想单击一列并将单元格索引发送到新阶段。但是我无法将参数(intclickIndex)传递给另一个控制器EditClientController。我已经尝试了所有方法,

我想单击一列并将单元格索引发送到新阶段。但是我无法将参数(int

clickIndex)传递给另一个控制器EditClientController。我已经尝试了所有方法,但仍然无法正常工作。

主控制器

package controller;

import javafx.collections.FXCollections;

import javafx.collections.ObservableList;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.fxml.FXML;

import javafx.fxml.FXMLLoader;

import javafx.fxml.Initializable;

import javafx.scene.Parent;

import javafx.scene.Scene;

import javafx.scene.control.*;

import javafx.scene.control.cell.PropertyValueFactory;

import javafx.scene.input.MouseEvent;

import javafx.scene.text.Text;

import javafx.stage.Stage;

import javafx.util.Callback;

import model.Table;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.net.URL;

import java.util.ResourceBundle;

public class MainController implements Initializable {

@FXML

TableView

@FXML

TableColumn iLp;

@FXML

TableColumn iCity;

@FXML

TableColumn iDeviceName;

@FXML

TableColumn iSerialNumber;

@FXML

TableColumn iCompanyName;

@FXML

TableColumn iContact;

@FXML

TableColumn iSellDate;

@FXML

TableColumn iWarranty;

@FXML

TableColumn iNextReview;

@FXML

TableColumn iWarrantyTrue;

@FXML

Button addButton;

@FXML

ComboBox warrantyLength;

@FXML

ComboBox nextReview;

@FXML

ComboBox warrantyTrue;

//Define variables

private int iNumber= 1;

public int clickIndex;

//Create table data

ObservableList

//Combo box

final ObservableList warranty = FXCollections.observableArrayList("---",12,24,36);

final ObservableList review = FXCollections.observableArrayList("---","tydzień","miesiąc","2 miesiące", "6 miesięcy");

final ObservableList warrantyTF = FXCollections.observableArrayList("---","tak","nie");

Callback cellFactory2 =

new Callback() {

public TableCell call(TableColumn p) {

final TableCell cell = new TableCell

@Override

public void updateItem(Integer item, boolean empty) {

super.updateItem(item, empty);

setText(empty ? null : getString());

setGraphic(null);

}

private String getString() {

return getItem() == null ? "" : getItem().toString();

}

};

cell.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler() {

@Override

public void handle(MouseEvent event) {

if (event.getClickCount() > 1) {

clickIndex=cell.getIndex();

try {

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("editClient.fxml"));

Parent root1 = (Parent) fxmlLoader.load();

Stage stage = new Stage();

stage.setTitle("Edytuj klienta");

stage.setScene(new Scene(root1));

stage.show();

} catch(Exception e) {

e.printStackTrace();

}

}

}

});

return cell;

}

};

Callback cellFactory =

new Callback() {

public TableCell call(TableColumn p) {

final TableCell cell = new TableCell

private Text text;

@Override

public void updateItem(String item, boolean empty) {

super.updateItem(item, empty);

text = new Text(item);

text.setWrappingWidth(100);

setGraphic(text);

}

private String getString() {

return getItem() == null ? "" : getItem().toString();

}

};

cell.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler() {

@Override

public void handle(MouseEvent event) {

if (event.getClickCount() > 1) {

clickIndex = cell.getIndex();

try {

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("editClient.fxml"));

Parent root1 = (Parent) fxmlLoader.load();

Stage stage = new Stage();

stage.setTitle("Edytuj klienta");

stage.setScene(new Scene(root1));

stage.show();

} catch(Exception e) {

e.printStackTrace();

}

}

}

});

return cell;

}

};

public void setClickedIndex(int click){

this.clickIndex=click;

}

public int getClickIndex(){

return clickIndex;

}

//Plik

public void openFile() {

FileReader plik = null;

int tab0=1;

int tab7=0;

String tab9=null;

try {

plik = new FileReader("dane.txt");

} catch (FileNotFoundException e) {

e.printStackTrace();

}

BufferedReader bfr = new BufferedReader(plik);

String linia = null;

try {

while ((linia = bfr.readLine()) != null) {

String[] tab = linia.split(";");

tab7=Integer.parseInt(tab[7]);

if(tab.length==10) {

if(tab[9].contains(tab[8])){

tab9="Tak";

}else{

tab9="Nie";

}

}

Table tablica = new Table(tab0++, tab[1], tab[2], tab[3], tab[4], tab[5], tab[6], tab7, tab[8], tab9);

data.add(tablica);

}

} catch (Exception e) {

System.out.println("BŁĄD ODCZYTU Z PLIKU!");

System.exit(2);

}

try {

plik.close();

} catch (IOException e) {

System.out.println("BŁĄD PRZY ZAMYKANIU PLIKU!");

System.exit(3);

}

}

public void setData(ObservableList

data=newData;

}

public ObservableList

return data;

}

public void pressButton(ActionEvent event) throws Exception {

try {

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("addClient.fxml"));

Parent root1 = (Parent) fxmlLoader.load();

Stage stage = new Stage();

stage.setTitle("Dodaj klienta");

stage.setScene(new Scene(root1));

stage.show();

} catch(Exception e) {

e.printStackTrace();

}

}

@Override

public void initialize(URL location, ResourceBundle resources) {

openFile();

iLp.setCellValueFactory(new PropertyValueFactory

iCity.setCellValueFactory(new PropertyValueFactory

iDeviceName.setCellValueFactory(new PropertyValueFactory

iSerialNumber.setCellValueFactory(new PropertyValueFactory

iCompanyName.setCellValueFactory(new PropertyValueFactory

iContact.setCellValueFactory(new PropertyValueFactory

iSellDate.setCellValueFactory(new PropertyValueFactory

iWarranty.setCellValueFactory(new PropertyValueFactory

iNextReview.setCellValueFactory(new PropertyValueFactory

iWarrantyTrue.setCellValueFactory(new PropertyValueFactory

iLp.setCellFactory(cellFactory2);

iCity.setCellFactory(cellFactory);

iDeviceName.setCellFactory(cellFactory);

iSerialNumber.setCellFactory(cellFactory);

iCompanyName.setCellFactory(cellFactory);

iContact.setCellFactory(cellFactory);

iSellDate.setCellFactory(cellFactory);

iWarranty.setCellFactory(cellFactory2);

iNextReview.setCellFactory(cellFactory);

iWarrantyTrue.setCellFactory(cellFactory);

tableID.setItems(data);

//comboboxy

warrantyLength.setItems(warranty);

warrantyLength.getSelectionModel().select(0);

nextReview.setItems(review);

nextReview.getSelectionModel().select(0);

warrantyTrue.setItems(warrantyTF);

warrantyTrue.getSelectionModel().select(0);

}

}

EditClientController

package controller;

import javafx.collections.FXCollections;

import javafx.collections.ObservableList;

import javafx.fxml.FXML;

import javafx.fxml.Initializable;

import javafx.scene.control.ComboBox;

import javafx.scene.control.TextField;

import java.net.URL;

import java.util.ResourceBundle;

/**

* Created by Krzysztof on 2015-01-14.

*/

public class EditClientController implements Initializable {

@FXML

ComboBox warrantyLength;

@FXML

TextField city;

public int index;

//Combo box dla okresu gwarancyjnego

final ObservableList warranty = FXCollections.observableArrayList("---", 12, 24, 36);

public void setIndex(int index){

this.index=index;

}

public int getIndex(){

return index;

}

@Override

public void initialize(URL location, ResourceBundle resources) {

// city.setText(tablica.get(index).getRCity());

warrantyLength.setItems(warranty);

warrantyLength.getSelectionModel().select(0);

}

}



推荐阅读
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
author-avatar
骨头少校_726
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有