Witam!
Jak zrobić, aby dało się edytować pola od Poniedzialku do Niedzieli?
Dziękuję za pomoc!
kontroler
/*
* 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 java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.TextFieldTableCell;
import java.io.IOException;
import java.io.Reader;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Kamil
*/
public class FXMLTableViewController implements Initializable {
@FXML private TableView<Person> tableView;
@FXML private TextField GodzField;
@FXML private TextField PonField;
@FXML private TextField WtField;
@FXML private TextField SrField;
@FXML private TextField CzwField;
@FXML private TextField PtField;
@FXML private TextField SobField;
@FXML private TextField NiedzField;
@Override
public void initialize(URL url, ResourceBundle rb) {
Person tydz[];
tydz = new Person[11];
String jakis="cos";
String czesci[]=null;
String p1=null,p2=null,p3=null,p4=null,p5=null,p6=null,p7=null,p8=null;
//settery
for(int i=0;i<11;i++){
tydz[i] = new Person();
int licz =-1;
try(BufferedReader br = new BufferedReader(new FileReader("PlikPlan.txt"))) {
for(String line; (line = br.readLine()) != null; ) {
licz++;
if(i==licz){
czesci = line.split(";",8);
p1=czesci[0];
p2=czesci[1];
p3=czesci[2];
p4=czesci[3];
p5=czesci[4];
p6=czesci[5];
p7=czesci[6];
p8=czesci[7];
}
}
} catch (FileNotFoundException ex) {
Logger.getLogger(FXMLTableViewController.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FXMLTableViewController.class.getName()).log(Level.SEVERE, null, ex);
}
tydz[i].setGodzina(p1);
tydz[i].setPoniedzialek(p2);
tydz[i].setWtorek(p3);
tydz[i].setSroda(p4);
tydz[i].setCzwartek(p5);
tydz[i].setPiatek(p6);
tydz[i].setSobota(p7);
tydz[i].setNiedziela(p8);
}
//gettery do tablicy
ObservableList<Person> data = tableView.getItems();
for(int i=0;i<11;i++){
data.add(
new Person(
tydz[i].getGodzina(),
tydz[i].getPoniedzialek(),
tydz[i].getWtorek(),
tydz[i].getSroda(),
tydz[i].getCzwartek(),
tydz[i].getPiatek(),
tydz[i].getSobota(),
tydz[i].getNiedziela()
)
);
}
}
@FXML
protected void addPerson(ActionEvent event) {
ObservableList<Person> data = tableView.getItems();
data.add(new Person(GodzField.getText(),
PonField.getText(),
WtField.getText(),
SrField.getText(),
CzwField.getText(),
PtField.getText(),
SobField.getText(),
NiedzField.getText()
));
GodzField.setText("");
PonField.setText("");
WtField.setText("");
SrField.setText("");
CzwField.setText("");
PtField.setText("");
SobField.setText("");
NiedzField.setText("");
}
}
klasa z dniami tygodnia
package fxmltableview;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javafx.beans.property.SimpleStringProperty;
public class Person {
private SimpleStringProperty Godzina = new SimpleStringProperty("");
private SimpleStringProperty Poniedzialek = new SimpleStringProperty("");
private SimpleStringProperty Wtorek = new SimpleStringProperty("");
private SimpleStringProperty Sroda = new SimpleStringProperty("");
private SimpleStringProperty Czwartek = new SimpleStringProperty("");
private SimpleStringProperty Piatek = new SimpleStringProperty("");
private SimpleStringProperty Sobota = new SimpleStringProperty("");
private SimpleStringProperty Niedziela = new SimpleStringProperty("");
public Person() {
this("", "", "", "", "", "", "","");
}
public Person(String Godzina, String Poniedzialek, String Wtorek, String Sroda, String Czwartek, String Piatek, String Sobota, String Niedziela) {
setGodzina(Godzina);
setPoniedzialek(Poniedzialek);
setWtorek(Wtorek);
setSroda(Sroda);
setCzwartek(Czwartek);
setPiatek(Piatek);
setSobota(Sobota);
setNiedziela(Niedziela);
}
public String getGodzina() {
return Godzina.get();
}
public void setGodzina(String fName) {
Godzina.set(fName);
}
public String getPoniedzialek() {
return Poniedzialek.get();
}
public void setPoniedzialek(String fName) {
Poniedzialek.set(fName);
}
public String getWtorek() {
return Wtorek.get();
}
public void setWtorek(String fName) {
Wtorek.set(fName);
}
public String getSroda() {
return Sroda.get();
}
public void setSroda(String fName) {
Sroda.set(fName);
}
public String getCzwartek() {
return Czwartek.get();
}
public void setCzwartek(String fName) {
Czwartek.set(fName);
}
public String getPiatek() {
return Piatek.get();
}
public void setPiatek(String fName) {
Piatek.set(fName);
}
public String getSobota() {
return Sobota.get();
}
public void setSobota(String fName) {
Sobota.set(fName);
}
public String getNiedziela() {
return Niedziela.get();
}
public void setNiedziela(String fName) {
Niedziela.set(fName);
}
public void wypelnij() throws IOException{
String czesci[];
int licz =3, i=0;
try(BufferedReader br = new BufferedReader(new FileReader("PlikPlan.txt"))) {
for(String line; (line = br.readLine()) != null; ) {
i++;
if(i==licz){
czesci = line.split(";",8);
for(int j=0;j<8;j++){
System.out.println(czesci[j]);
}
}
}
}
}
}
FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?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"
fx:controller="fxmltableview.FXMLTableViewController">
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/>
</padding>
<Label style="-fx-font: NORMAL 20 Tahoma;" text="Plan Zajęć"
GridPane.columnIndex="0" GridPane.rowIndex="0">
</Label>
<TableView fx:id="tableView" GridPane.columnIndex="0" GridPane.rowIndex="1">
<columns>
<TableColumn text="Godzina">
<cellValueFactory><PropertyValueFactory property="Godzina" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Poniedzialek">
<cellValueFactory><PropertyValueFactory property="Poniedzialek" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Wtorek">
<cellValueFactory><PropertyValueFactory property="Wtorek" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Sroda">
<cellValueFactory><PropertyValueFactory property="Sroda" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Czwartek">
<cellValueFactory><PropertyValueFactory property="Czwartek" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Piątek">
<cellValueFactory><PropertyValueFactory property="Piatek" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Sobota">
<cellValueFactory><PropertyValueFactory property="Sobota" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Niedziela">
<cellValueFactory><PropertyValueFactory property="Niedziela" />
</cellValueFactory>
</TableColumn>
</columns>
<items>
<FXCollections fx:factory="observableArrayList">
</FXCollections>
</items>
</TableView>
<HBox spacing="10" alignment="bottom_right" GridPane.columnIndex="0"
GridPane.rowIndex="2">
<TextField fx:id="GodzField" promptText="Godzina"
prefWidth="90"/>
<TextField fx:id="PonField" promptText="Poniedziałek"
prefWidth="90"/>
<TextField fx:id="WtField" promptText="Wtorek"
prefWidth="90"/>
<TextField fx:id="SrField" promptText="Sroda"
prefWidth="90"/>
<TextField fx:id="CzwField" promptText="Czwartek"
prefWidth="90"/>
<TextField fx:id="PtField" promptText="Piatek"
prefWidth="90"/>
<TextField fx:id="SobField" promptText="Sobota"
prefWidth="90"/>
<TextField fx:id="NiedzField" promptText="Niedziela"
prefWidth="90"/>
<Button text="Add" onAction="#addPerson"/>
</HBox>
</GridPane>