Javafx TableView problem s metodou setCellValueFactory – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Javafx TableView problem s metodou setCellValueFactory – Java – Fórum – Programujte.comJavafx TableView problem s metodou setCellValueFactory – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
JX
~ Anonymní uživatel
1 příspěvek
24. 3. 2014   #1
-
+1
-
Zajímavé

Zdravím , mám problém s TableView , mám 3 stlpce a potrebujem ich inicializovat cez setCellValueFactory()

no vyhadzuje mi to NullpointerExeption a netušim prečo.

@FXML
private TableView<Hosts> table;

@FXML
private TableColumn<Hosts,String> hostsColumn,subnetsColumn,growthColumn;

private ObservableList<Hosts> tableData = FXCollections.observableArrayList();

 @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("host.fxml"));

        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 500, 550));
        primaryStage.setMinHeight(550);
        primaryStage.setMinWidth(500);
        primaryStage.show();

    hostsColumn.setCellValueFactory(new PropertyValueFactory<Hosts, String>("h"));
    subnetsColumn.setCellValueFactory(new PropertyValueFactory<Hosts, String>("S"));
    growthColumn.setCellValueFactory(new PropertyValueFactory<Hosts, String>("G"));

    table.setItems(tableData);
    } 
public class Hosts
{
    private String h;
    private String s;
    private String g;

    public Hosts(String h, String s, String g) {
        this.h = h;
        this.s = s;
        this.g = g;
    }

    public String getH() {
        return h;
    }

    public void setH(String h) {
        this.h = h;
    }

    public String getS() {
        return s;
    }

    public void setS(String s) {
        this.s = s;
    }

    public String getG() {
        return g;
    }

    public void setG(String g) {
        this.g = g;
    }
}

Chyba je pri hostsColumn.setCellValueFactory(), vďaka za pomoc

Nahlásit jako SPAM
IP: 194.8.239.–
Reklama
Reklama
TonyDev0
Duch
6. 6. 2014   #2
-
0
-

#1 JX
Ahoj, předpokládám že máš k host.fxml taky třídu HostController, když už používáš FXML k vytvoření aplikace (pokud ne, vytvoř si ho).

Zde je metoda initialize, slouží k nahrání dat do komponent, tlačítek, předvyplněné pole atd.

 Třída HostControlleru:

import ...

/**
 * FXML Controller class
 *
 * @author Tonda
 */
public class HostController implements Initializable {

    @FXML
    private TableView<Hosts> table;
    @FXML
    private TableColumn<Hosts, String> hostsColumn;
    @FXML
    private TableColumn<Hosts, String> subnetsColumn;
    @FXML
    private TableColumn<Hosts, String> growthColumn;

    private ObservableList<Hosts> tableData = FXCollections.observableArrayList();

    /**
     * zde načti data
     * použává se k nahrnání dat po spuštění aplikace (názvy tlačítek, předvyplněné pole atd.) 
     */
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        hostsColumn.setCellValueFactory(new PropertyValueFactory<>("h"));
        subnetsColumn.setCellValueFactory(new PropertyValueFactory<>("S"));
        growthColumn.setCellValueFactory(new PropertyValueFactory<>("G"));

        table.setItems(tableData);
    }
}

Spouštěcí třída potom vypadá takto:

import ...
/**
 *
 * @author Tonda
 */
public class JavaFXApplication2 extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = (Parent) FXMLLoader.load(getClass().getResource("host.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 500, 550));
        primaryStage.setMinHeight(550);
        primaryStage.setMinWidth(500);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

To je vše.   

Nahlásit jako SPAM
IP: 90.177.121.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 26 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý