Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 适应Oracle';的通讯簿教程,包括单元格编辑_Java_Oracle_Javafx 2 - Fatal编程技术网

Java 适应Oracle';的通讯簿教程,包括单元格编辑

Java 适应Oracle';的通讯簿教程,包括单元格编辑,java,oracle,javafx-2,Java,Oracle,Javafx 2,我是个新手,非常想知道如何在使用FXML时使列单元格可编辑。 具体来说,我一直遵循Oracle提供的两个工作示例。第一个()允许编辑。 第二个示例()在教程的底部建议可以对其进行编辑,但没有说明如何实现这一点 我已经阅读了相关问题的答案,但它们超出了我目前的知识水平 有人能告诉我如何用尽可能简单的方法来做吗 为了节省您查找教程的时间,以下是我直接从Oracle复制的文件: 提前谢谢 首先是FXMLTableView.java /* * To change this license header

我是个新手,非常想知道如何在使用FXML时使列单元格可编辑。 具体来说,我一直遵循Oracle提供的两个工作示例。第一个()允许编辑。 第二个示例()在教程的底部建议可以对其进行编辑,但没有说明如何实现这一点

我已经阅读了相关问题的答案,但它们超出了我目前的知识水平

有人能告诉我如何用尽可能简单的方法来做吗

为了节省您查找教程的时间,以下是我直接从Oracle复制的文件:

提前谢谢

首先是FXMLTableView.java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package fxmltableview;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;


public class FXMLTableView extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
       primaryStage.setTitle("FXML TableView Example");
       Pane myPane = (Pane)FXMLLoader.load(getClass().getResource
    ("fxml_tableview.fxml"));
       Scene myScene = new Scene(myPane);
       primaryStage.setScene(myScene);
       primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
第二个是控制器:

package fxmltableview;

import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;


public class FXMLTableViewController {

    @FXML private TableView<Person> tableView;
    @FXML private TextField firstNameField;
    @FXML private TextField lastNameField;
    @FXML private TextField emailField;



    @FXML
    protected void addPerson(ActionEvent event) {
        ObservableList<Person> data = tableView.getItems();
        data.add(new Person(firstNameField.getText(),
            lastNameField.getText(),
            emailField.getText()
        ));

        firstNameField.setText("");
        lastNameField.setText("");
        emailField.setText("");   
    }
}
最后一个文件是.fxml文件:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.cell.*?>
<?import javafx.collections.*?>
<?import fxmltableview.*?>

<GridPane alignment="CENTER" hgap="10.0" vgap="10.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="fxmltableview.FXMLTableViewController">
    <padding>
        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
    </padding>
   <children>
       <Label style="-fx-font: NORMAL 20 Tahoma;" text="Address Book" GridPane.columnIndex="0" GridPane.rowIndex="0">
    </Label>
       <TableView fx:id="tableView" editable="true" GridPane.columnIndex="0" GridPane.rowIndex="1">

           <columns>
             <TableColumn fx:id="firstNameColumn" prefWidth="100" text="First Name">

           <cellValueFactory>
                  <PropertyValueFactory property="firstName" />
           </cellValueFactory>
          <cellFactory>
             <FormattedTableCellFactory alignment="left">
          </FormattedTableCellFactory>
        </cellFactory>
        </TableColumn>
        <TableColumn prefWidth="100" text="Last Name">
           <cellValueFactory>
                  <PropertyValueFactory property="lastName" />
           </cellValueFactory>
           <cellFactory>
             <FormattedTableCellFactory alignment="left">
          </FormattedTableCellFactory>
        </cellFactory>
        </TableColumn>
        <TableColumn prefWidth="200" text="Email Address">
            <cellValueFactory>
                  <PropertyValueFactory property="email" />
            </cellValueFactory>
            <cellFactory>
             <FormattedTableCellFactory alignment="left">
          </FormattedTableCellFactory>
        </cellFactory>
       </TableColumn>
        </columns>   

         <items>
       <FXCollections fx:factory="observableArrayList">
           <Person email="jacob.smith@example.com" firstName="Jacob" lastName="Smith" />
           <Person email="isabella.johnson@example.com" firstName="Isabella" lastName="Johnson" />
           <Person email="ethan.williams@example.com" firstName="Ethan" lastName="Williams" />
           <Person email="emma.jones@example.com" firstName="Emma" lastName="Jones" />
           <Person email="michael.brown@example.com" firstName="Michael" lastName="Brown" />
       </FXCollections>
   </items> 
       <sortOrder>
             <fx:reference source="firstNameColumn" />
        </sortOrder> 

       </TableView>
       <HBox alignment="bottom_right" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="2">
          <children>
                <TextField fx:id="firstNameField" prefWidth="90" promptText="First Name" />
                <TextField fx:id="lastNameField" prefWidth="90" promptText="Last Name" />
                <TextField fx:id="emailField" prefWidth="150" promptText="email" />
                <Button onAction="#addPerson" text="Add" />
          </children>
        </HBox>
   </children>
   <columnConstraints>
      <ColumnConstraints />
   </columnConstraints>
   <rowConstraints>
      <RowConstraints />
      <RowConstraints />
      <RowConstraints />
   </rowConstraints>
</GridPane>

package fxmltableview;

import javafx.beans.property.SimpleStringProperty;


public class Person {
   private final SimpleStringProperty firstName = new SimpleStringProperty("");
   private final SimpleStringProperty lastName = new SimpleStringProperty("");
   private final SimpleStringProperty email = new SimpleStringProperty("");

public Person() {
        this("", "", "");
    }

    public Person(String firstName, String lastName, String email) {
        setFirstName(firstName);
        setLastName(lastName);
        setEmail(email);
    }

    public String getFirstName() {
        return firstName.get();
    }

    public void setFirstName(String fName) {
        firstName.set(fName);
    }

    public String getLastName() {
        return lastName.get();
    }

    public void setLastName(String fName) {
        lastName.set(fName);
    }

    public String getEmail() {
        return email.get();
    }

    public void setEmail(String fName) {
        email.set(fName);
    }
}
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.cell.*?>
<?import javafx.collections.*?>
<?import fxmltableview.*?>

<GridPane alignment="CENTER" hgap="10.0" vgap="10.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="fxmltableview.FXMLTableViewController">
    <padding>
        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
    </padding>
   <children>
       <Label style="-fx-font: NORMAL 20 Tahoma;" text="Address Book" GridPane.columnIndex="0" GridPane.rowIndex="0">
    </Label>
       <TableView fx:id="tableView" editable="true" GridPane.columnIndex="0" GridPane.rowIndex="1">

           <columns>
             <TableColumn fx:id="firstNameColumn" prefWidth="100" text="First Name">

           <cellValueFactory>
                  <PropertyValueFactory property="firstName" />
           </cellValueFactory>
          <cellFactory>
             <FormattedTableCellFactory alignment="left">
          </FormattedTableCellFactory>
        </cellFactory>
        </TableColumn>
        <TableColumn prefWidth="100" text="Last Name">
           <cellValueFactory>
                  <PropertyValueFactory property="lastName" />
           </cellValueFactory>
           <cellFactory>
             <FormattedTableCellFactory alignment="left">
          </FormattedTableCellFactory>
        </cellFactory>
        </TableColumn>
        <TableColumn prefWidth="200" text="Email Address">
            <cellValueFactory>
                  <PropertyValueFactory property="email" />
            </cellValueFactory>
            <cellFactory>
             <FormattedTableCellFactory alignment="left">
          </FormattedTableCellFactory>
        </cellFactory>
       </TableColumn>
        </columns>   

         <items>
       <FXCollections fx:factory="observableArrayList">
           <Person email="jacob.smith@example.com" firstName="Jacob" lastName="Smith" />
           <Person email="isabella.johnson@example.com" firstName="Isabella" lastName="Johnson" />
           <Person email="ethan.williams@example.com" firstName="Ethan" lastName="Williams" />
           <Person email="emma.jones@example.com" firstName="Emma" lastName="Jones" />
           <Person email="michael.brown@example.com" firstName="Michael" lastName="Brown" />
       </FXCollections>
   </items> 
       <sortOrder>
             <fx:reference source="firstNameColumn" />
        </sortOrder> 

       </TableView>
       <HBox alignment="bottom_right" spacing="10" GridPane.columnIndex="0" GridPane.rowIndex="2">
          <children>
                <TextField fx:id="firstNameField" prefWidth="90" promptText="First Name" />
                <TextField fx:id="lastNameField" prefWidth="90" promptText="Last Name" />
                <TextField fx:id="emailField" prefWidth="150" promptText="email" />
                <Button onAction="#addPerson" text="Add" />
          </children>
        </HBox>
   </children>
   <columnConstraints>
      <ColumnConstraints />
   </columnConstraints>
   <rowConstraints>
      <RowConstraints />
      <RowConstraints />
      <RowConstraints />
   </rowConstraints>
</GridPane>