JavaFX Mehrere Klassen in ein TableView

weissnix

Mitglied
Hi,
Ich versuche mich gerade zum Lernen an einem kleinen "Projekt" wo ich einige Daten aus einer DB in eine JavaFX TableView einfügen möchte...Soweit, so (mehr oder weniger) gut...

Mein Model sieht (stark verkürzt) so aus:

public class SparePart implements Serializable {
private Long id;
private String sparePartNumber;
private String specification;

@OneToOne(fetch=FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.REFRESH})
@JoinColumn(name="id", insertable=false, updatable=false)
private SparePartStock sparePartStock;
...

public class SparePartStock implements Serializable {
@Id
@OneToOne
@JoinColumn(name="sparePart_id")
private SparePart sparePart;
private String storageLocation;
private int stockAmount;
private int minStockAmount;
....

In der Tabelle möchte ich jetzt sparePartNumber, specification, storageLocation und stockAmount zeigen....

Jetzt habe ich aber das Problem, dass ich ja nur eine Klasse in die Tabelle einfügen kann und die Felder aus SparePartStock dann leer bleiben. Habt Ihr vielleicht einen Tip, wie ich auch die Daten aus der anderen Klasse dazubekomme???

Meine Tabellenspalten sehen so aus:

TableColumn<SparePart, String> colSparePartNumber = new TableColumn<SparePart, String>("Ersatzteilnummer");
colSparePartNumber.setMinWidth(300);
colSparePartNumber.setCellValueFactory(new PropertyValueFactory<SparePart, String>("sparePartNumber"));

Danke im Voraus

Gruß
 

dzim

Top Contributor
Warum nutzt du dann nicht einfach "SparePartStock" als Basis? Das enthält doch "SparePart". Eventuell musst du dann etwas mehr Arbeit in die CellValueFactory (und evtl. auch CellFactory) stecken, aber ansonsten sehe ich gerade keinen Grund es nicht zu verwenden (speziell da SparePartStock und SparePart ein 1:1-Beziehung haben).
 

weissnix

Mitglied
Hmm...aber wo ist dann der Unterschied? Ob ich jetzt Sparepart als Basis hab und dazu dann SparePartStock ...oder umgedreht (oder hab ich jetzt ein Denkfehler?)
Mit CellValueFactory werd ich mich mal noch etwas genauer befassen müssen, bis jetzt bin ich noch eher an der Oberfläche mit JavaFX.

Danke schonmal
 

dzim

Top Contributor
Da du es nicht in Code-Blöcken eingebettet hast, habe ich übersehen, dass du die Referenz auf beiden Seiten hast. In dem Fall vergiss es.
Dann ist es einfacher, die TableColumn auf TableColumn<SparePart, SparePart> zu ändern und dann so zu initialisieren:
Java:
tc.setCellValueFactory(param -> new SimpleObjectProperty<SparePart>(param.getValue()));
bzw für den Inhalt etwa so hier (ohne Garantier auf Korrektheit ;))
Java:
tc.setCellFactory(param -> new CustomCell());

    private static class CustomCell<SparePart> extends TableCell<SparePart, SparePart> {
         
        public CustomCell() {
            // bla bla
        }
      
        @Override
        protected void updateItem(SparePart item, boolean empty) {
          
            super.updateItem(item, empty);
          
            if (empty || item == null) {
                textProperty().unbind();
                setText("");
                setGraphic(null);
                return;
              
            }
           setText(item.getSparePartStock().getStorageLocation());
           // am Besten irgendwie generischer schreiben (Konstruktor-Parameter),
           // um die Klasse nicht für jede Spalten neu zu schreiben...
        }
    }

So etwa.
 

weissnix

Mitglied
hmm..hab mir das jetzt mal genau angeschaut...und stelle fest, dass ich wohl noch etwas weiter lesen muß...Ich verstehe nämlich GAR NIX davon... Ich werde dann wohl erst ein paar kleinere Brötchen backen ;).

Danke
 

weissnix

Mitglied
..SO, hat mir doch keine Ruhe gelassen (und der Kater lag auf meinem Schoß, also konnt ich nicht aufstehen) und ich hab noch etwas rumprobiert auch wenn es jetzt mehr "rumfrickeln" ohne Sinn und Verstand war...
ich mußte dein "setText....." so wie unten ändern, jetzt gehts.
Wie ich das allerdings "generischer" hinbekommen soll weiß ich noch nicht wirklich, aber das ist jetzt erstmal nicht sooo wichtig, ich brauch das für 3 oder 4 Zellen, da kann ichs auch so lösen und mich dann später genauer damit befassen.

Code:
    private static class CustomCell<SparePart> extends TableCell<SparePart, SparePart> {
        public CustomCell(){
        }
       
        @Override
        protected void updateItem(SparePart item, boolean empty){
            super.updateItem(item,  empty);

            if (empty || item == null) {
                textProperty().unbind();
                setText("");
                setGraphic(null);
                return;
           }
           setText(((de.Techmanagement.model.SparePart) item).getSparePartStock().getStorageLocation());
        }
    }

Vielen Dank bis hier hin ;-)

PS: jetzt hab ich erst gefunden wo ich die Code-Tags finde ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
H Swing Prog in mehrere Klassen zerlegen AWT, Swing, JavaFX & SWT 13
G Grafik auf mehrere Methoden/Klassen zerlegen AWT, Swing, JavaFX & SWT 2
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
S Mehrere Tabellen Zellen gleichzeitig färben AWT, Swing, JavaFX & SWT 5
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
I Scene Builder - mehrere Seiten AWT, Swing, JavaFX & SWT 6
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
M mehrere jTextField untereinander AWT, Swing, JavaFX & SWT 1
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
M JavaFX JavaFX in mehrere Controller AWT, Swing, JavaFX & SWT 21
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
temi JavaFX Mehrere Views mit Stage.setScene() oder mit Scene.setRoot()? AWT, Swing, JavaFX & SWT 7
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
T Swing Tetraeder - mehrere Punkte verbinden? - Ansätze gesucht AWT, Swing, JavaFX & SWT 2
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 29
K JavaFX in mehrere Controller aufteilen AWT, Swing, JavaFX & SWT 0
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
K Mehrere Linien zeichnen AWT, Swing, JavaFX & SWT 8
J JavaFX - mehrere Views, Model durchreichen AWT, Swing, JavaFX & SWT 10
it_is_all Swing Mehrere JComboBoxen - wie die versch. Boxen mit ItemStateChange auslesen? AWT, Swing, JavaFX & SWT 3
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
L JavaFX Mehrere JavaFX Szenen mit einem Menü AWT, Swing, JavaFX & SWT 1
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
F JavaFX Mehrere Stages "managen" AWT, Swing, JavaFX & SWT 2
r4w Changelistener auf mehrere Textfelder AWT, Swing, JavaFX & SWT 5
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
S Swing Mehrere Modal-Dialoge übereinander AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
C JavaFX mehrere Kreise nach Eingabeprozess ausgeben AWT, Swing, JavaFX & SWT 2
Thallius Swing Mehrere tausend "Panels" erstellen AWT, Swing, JavaFX & SWT 3
C Java FX Warnmeldung: Mehrere Fonts gehören derselben Familie und Stil AWT, Swing, JavaFX & SWT 2
J Mehrere JInternalFrame; GetValues AWT, Swing, JavaFX & SWT 1
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
K JavaFX Mehrere Cell Editors in einem TreeView Item AWT, Swing, JavaFX & SWT 2
KaffeeFan mehrere JTextField durchlaufen AWT, Swing, JavaFX & SWT 4
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
T Dynamisch mehrere Checkboxen anlegen AWT, Swing, JavaFX & SWT 2
G JavaFX Menü und mehrere Scenes AWT, Swing, JavaFX & SWT 16
R Swing Mehrere JTextFields mit einem Document Listener AWT, Swing, JavaFX & SWT 2
D Mehrere RadiButtons auswählar AWT, Swing, JavaFX & SWT 3
P Swing JTable mehrere Zeilen markieren AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
T JavaFX FXMLController für mehrere FXML? AWT, Swing, JavaFX & SWT 7
G mehrere Action-Abfolgen erfassen AWT, Swing, JavaFX & SWT 6
elischa JFrame über mehrere JPanel und Listener AWT, Swing, JavaFX & SWT 17
X Swing JPanel mehrere Ebenen zeichnen AWT, Swing, JavaFX & SWT 13
J Mehrere Hyperlinks "stilvoll" darstellen. AWT, Swing, JavaFX & SWT 1
G Mehrere Strings um Kreis zeichnen und positionieren AWT, Swing, JavaFX & SWT 0
S JavaFX Mehrere TreeTableView's synchron scrollen AWT, Swing, JavaFX & SWT 0
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
J Rahmen um mehrere GUI Einzelteile AWT, Swing, JavaFX & SWT 2
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
M Mehrere Fenster innerhalb einer Application AWT, Swing, JavaFX & SWT 3
T Über mehrere Panel zeichnen AWT, Swing, JavaFX & SWT 2
T [LWJGL] mehrere Displays? AWT, Swing, JavaFX & SWT 19
SexyPenny90 Mehrere Fenster AWT, Swing, JavaFX & SWT 2
M Handling 1 Fenster mehrere Panels AWT, Swing, JavaFX & SWT 2
Y Mehrere JSlider verlinken AWT, Swing, JavaFX & SWT 6
Java-Insel LayoutManager Ein GridBagLayout-Objekt für mehrere Panels? AWT, Swing, JavaFX & SWT 2
O Swing JLabel mehrere Zeilen AWT, Swing, JavaFX & SWT 2
P mehrere Rectangles per JButton AWT, Swing, JavaFX & SWT 9
B JToolBar dynamisch auf mehrere Zeilen erweitern AWT, Swing, JavaFX & SWT 2
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
G Mehrere Probleme mit Java's GUI AWT, Swing, JavaFX & SWT 6
G Mehrere Layoutprobleme AWT, Swing, JavaFX & SWT 2
Kenan89 JTable mehrere ListSelections AWT, Swing, JavaFX & SWT 2
M TextArea über mehrere Zeilen - wie Zeileanzahl abfragen? AWT, Swing, JavaFX & SWT 5
J Swing JDialog blokiert mehrere JFrames - soll aber nur den aufrufenden blockieren AWT, Swing, JavaFX & SWT 4
A mehrere Zeilen in GUi ausgeben AWT, Swing, JavaFX & SWT 2
N Mehrere Tasks nacheinander ausführen AWT, Swing, JavaFX & SWT 7
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
propra Mehrere Objekte gleichzeitig verschieben AWT, Swing, JavaFX & SWT 7
M 2D-Grafik Mehrere Linien (nacheinander) übereinander Zeichnen AWT, Swing, JavaFX & SWT 6
M Mehrere JPanel nacheinander?! AWT, Swing, JavaFX & SWT 11
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
K SWT Mehrere Einträge ins Clipboard legen AWT, Swing, JavaFX & SWT 2
C Swing Ein JFrame mehrere Ansichten AWT, Swing, JavaFX & SWT 8
C Swing Mehrere JSlider sollen aufeinander reagieren AWT, Swing, JavaFX & SWT 4
GUI-Programmer JFilechooser, mehrere Datein selektieren und Reihenfolge (2) AWT, Swing, JavaFX & SWT 8
S Mehrere JLists - Wie kennzeichnen? AWT, Swing, JavaFX & SWT 2
S Swing MVC Ein JFrame, mehrere JPanels AWT, Swing, JavaFX & SWT 6
J Mehrere JRadioButtons, aber nur 1 darf ausgewählt sein AWT, Swing, JavaFX & SWT 4
L Swing Mehrere Button die selbe Größe AWT, Swing, JavaFX & SWT 4
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
I Wie mehrere JComboBoxen in Abhängigkeit einer anderen Box ändern? AWT, Swing, JavaFX & SWT 8
G mehrere JPanel in ein (vertikales) JScrollPane AWT, Swing, JavaFX & SWT 8
F Swing Mehrere Textfelder in Scrollpane einfügen und dann zum Scrollen bringen? AWT, Swing, JavaFX & SWT 4
GianaSisters Swing jTable - Feldtext soll mehrere Zeilen haben AWT, Swing, JavaFX & SWT 3
K JFileChooser mehrere Dateien markieren ohne STRG AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben