JavaFX Nutzen von Interface Callback<P,R>

GhostfaceChilla

Bekanntes Mitglied
Hallo Leute. Da ich mich zur Zeit mit DI und allgemein JavaFx sehr viel beschäftige, bin auch das Interface Callback gestoßen. Ich verstehe was in der Dokumentation steht (Callback (JavaFX 2.2)), aber ich weis nicht was mir diese Interface nutzen kann. Ich habe gesehen das es in JavFX vorallem für Factories benutz wird ( FXMLLoader .setControllerFactory() oder .setCellFactory() etc.) Wie funktioniert dieses Interface und wie kann es dazu eingesetzt werden um solch eine Fcatory zu erstellen?
Vielen Dank für eure Hilfe schonmal, ich bin durch das Internet nicht wirklich schlauer geworden :oops:

-GhostfaceChilla-
 

dzim

Top Contributor
Wie der Name Callback eventuell vermuten lässt, wird es u.a. von den von dir genannten Factories dann aufgerufen, wenn zum Beispiel eine Zeile einer Liste oder Tabelle dargestellt werden muss. Dies geschieht On-Demand - will heissen: Es werden nicht schon beim Laden der Daten alle UI-Elemente bis zum letzten Tabelleneintrag erstellt, sondern erst, wenn sie angezeigt werden müssen (z.B. wenn man Scrollt).
Angewendet werden sie meist einfach, indem man sie implementiert. Bestes Bsp. bleiben die cellFactories.

Bsp. 1:
Java:
Callback<TableColumn.CellDataFeatures<TestDetails, TestDetails>, ObservableValue<TestDetails>> contentCallback = new Callback<TableColumn.CellDataFeatures<TestDetails, TestDetails>, ObservableValue<TestDetails>>() {
	@Override
	public ObservableValue<TestDetails> call(CellDataFeatures<TestDetails, TestDetails> param) {
		return new SimpleObjectProperty<TestDetails>(param.getValue());
	}
};
Gibt ein TestDetail-Objekt (einfache Bean, keine JavaFX-Observables!), wenn es benötigt wird... Das heiss, wenn es angezeigt werden soll:
Bsp. 2:
Java:
tableColumnId.setCellFactory(new Callback<TableColumn<TestDetails, TestDetails>, TableCell<TestDetails, TestDetails>>() {
	@Override
	public TableCell<TestDetails, TestDetails> call(TableColumn<TestDetails, TestDetails> param) {
		return new ResultDetailsTableCell(TestDetails.TEST_SERIESID);
	}
});
Und die Klasse ResultDetailsTableCell:
Java:
public class ResultDetailsTableCell extends TableCell<TestDetails, TestDetails> {
		
	private final String type;
		
	public ResultDetailsTableCell(final String type) {
		this.type = type;
	}
		
	@Override
	protected void updateItem(TestDetails item, boolean empty) {
		
		super.updateItem(item, empty);
		
		if (empty) {
			setText(null);
		} else {
			setTextOverrun(OverrunStyle.ELLIPSIS);
			String text = "";
			if (TestDetails.TEST_SERIESID.equals(type) || TestDetails.TEST_TESTID.equals(type)) {
				text = StringResource.getString("root.table.column.seriesTest.format", item.getFormatedStringByKey(TestDetails.TEST_SERIESID),
						item.getFormatedStringByKey(TestDetails.TEST_TESTID));
			} else if (TestDetails.TEST_TIMESTAMP.equals(type)) {
				DateFormat df = new SimpleDateFormat(StringResource.getString("root.table.column.date.format"), Locale.ENGLISH);
				text = df.format(new Date(item.getLong(TestDetails.TEST_TIMESTAMP)));
			} else if (TestDetails.DOWNLOAD_AVERAGE.equals(type)) {
				text = item.getFormatedStringByKey(TestDetails.DOWNLOAD_AVERAGE);
			} else if (TestDetails.UPLOAD_AVERAGE.equals(type)) {
				text = item.getFormatedStringByKey(TestDetails.UPLOAD_AVERAGE);
			} else if (TestDetails.RTT_AVERAGE.equals(type)) {
				text = item.getFormatedStringByKey(TestDetails.RTT_AVERAGE);
			}
			setText(text);
		}
	}
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Die ganze Pane width nutzen AWT, Swing, JavaFX & SWT 1
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
P Swing jxmapviewer hinzufügen/nutzen funktioniert nicht AWT, Swing, JavaFX & SWT 7
K Javafx Plugin (javafx:jlink) mit moditect Plugin nutzen ... AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
B Swing JXMapkit OSM Karten offline Nutzen AWT, Swing, JavaFX & SWT 0
P Vorteile von Tooltip nutzen (wird über allen anderen Objekten angezeigt) AWT, Swing, JavaFX & SWT 3
C JFrame paint ohne hintergrund nutzen AWT, Swing, JavaFX & SWT 6
T Swing Nutzen von MediaTracker AWT, Swing, JavaFX & SWT 4
F Swing GUI-Thread für automatisches Update nutzen AWT, Swing, JavaFX & SWT 10
C html browser in Application nutzen AWT, Swing, JavaFX & SWT 10
J 2 Bereiche im Frame komplett nutzen - Welchen Layoutmanager? AWT, Swing, JavaFX & SWT 3
L TreeViewerColumn - gesamte TreeView-breite nutzen? AWT, Swing, JavaFX & SWT 5
W LayoutManager GridBag richtig nutzen - Komponenten richtig anordnen und automatisch vergrößern AWT, Swing, JavaFX & SWT 5
T SWINGX richtig nutzen AWT, Swing, JavaFX & SWT 7
S JSplitpane in BorderLayout nutzen AWT, Swing, JavaFX & SWT 4
hdi Swing JTable: Fehler beim Nutzen von RowSorter#setRowFilter AWT, Swing, JavaFX & SWT 4
C Kann Konstruktor von eigenem TableModel nicht nutzen AWT, Swing, JavaFX & SWT 2
R Swing alle Frames nutzen das gleiche Model AWT, Swing, JavaFX & SWT 2
D Swing Nutzen von StyleConstants AWT, Swing, JavaFX & SWT 5
J [gelöst] nicht installierte Schrftart nutzen AWT, Swing, JavaFX & SWT 8
R Japaner koennen mein Programm nicht nutzen..? AWT, Swing, JavaFX & SWT 11
A paint()-Methode für Videoexport nutzen AWT, Swing, JavaFX & SWT 2
T JFrame doppelt nutzen? AWT, Swing, JavaFX & SWT 3
D Methode Graphics g klassenübergreifend nutzen. AWT, Swing, JavaFX & SWT 3
T Eigene erweiterte MouseEvents nutzen AWT, Swing, JavaFX & SWT 2
B Polygon mit contains() nutzen AWT, Swing, JavaFX & SWT 4
D JDIC Browser in SWT/JFace Anwendung nutzen AWT, Swing, JavaFX & SWT 2
B Objekt in "actionPerformed" erzeugen und nutzen AWT, Swing, JavaFX & SWT 3
P VK_TAB wie nutzen ? [Tabulator Taste] AWT, Swing, JavaFX & SWT 5
S JFrame und Applets zusammen nutzen AWT, Swing, JavaFX & SWT 5
M Nutzer interface Programmieren AWT, Swing, JavaFX & SWT 2
kilopack15 Interface mit Layout verknüpfen AWT, Swing, JavaFX & SWT 2
K Fehlermeldung mit Interface AWT, Swing, JavaFX & SWT 9
J Swing Erstellung eines User Interface AWT, Swing, JavaFX & SWT 2
D JavaFX Interface Initializable - Was machen die Parameter in der Methode inizializeable() ? AWT, Swing, JavaFX & SWT 4
S Interface Printable AWT, Swing, JavaFX & SWT 5
K Verständnisproblem mit Interface AWT, Swing, JavaFX & SWT 3
trash Dynamisches Interface AWT, Swing, JavaFX & SWT 6
C Interface für JButtons,... AWT, Swing, JavaFX & SWT 7
A User Interface aufteilen? AWT, Swing, JavaFX & SWT 3
B In eine Konsolenanwendung ein Interface einbinden AWT, Swing, JavaFX & SWT 5
J instanceof von einem Interface und aufrufen der Methoden AWT, Swing, JavaFX & SWT 5
S Sowas wie ein drawable-interface? AWT, Swing, JavaFX & SWT 3
B Scrollable - Wie benutzt man das Interface richtig? AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben