Swing in JavaFX einbinden

JeromeC

Aktives Mitglied
Hey Leute,

wir arbeiten in einem Projekt mit JavaFX als grafische Oberfläche.
Ich nutze DSJ zum Einholen von Webcam-Bildern. Diese werden mir auf einem JPanel geliefert.
Jetzt würde ich dieses JPanel gerne in JavaFX einbinden, finde aber keine Möglichkeit.

Soetwas funktioniert leider nicht:
Java:
DSCapture graph = new DSCapture(DSFiltergraph.DD7, dsi[0][0], false, DSFilterInfo.doNotRender(), this);
BorderPane pane = new BorderPane();
pane.setCenter(graph.asComponent());

asComponent() liefert Folgendes:
returns either the canvas DSFiltergraph extends or a JPanel it renders into

Hat Jemand einen Ansatz, dieses Problem zu lösen? Wäre euch sehr dankbar,
Grüße Jerome.
 

OSBI_Fan

Mitglied
Hallo JeromeC,

1. JavaFX mit JFXPanel Komponente in Swing Anwendungen einbinden

versucht mal folgendes bzw. werft mal einen kurzen Blick auf den folgenden Link:

http://www.sourcetalk.de/2012/files/2012/09/JavaFX-Wolfgang-Weigend.pdf

Hintergrund: Entwickler sind meist keine guten UI-Designer. Deshalb ist es gut UI-Design und Entwicklung zu trennen. JavaFX 2.0 ist mit dem Versprechen angetreten dies zu vereinfachen. Aber wo sind die Tools?

Gerrit Grunwald, Anton Epple >> Folien der Source Talk Tage 2012 Die meisten Folien sind jetzt online:


Präsentationen | Source Talk Tage 2012

2. Ressourcen:

3. Beispiel:
Java:
java.awt.Component
java.awt.Container
private static void initFX(JFXPanel fxPanel) {
// This method is invoked on JavaFX thread
Scene scene = createScene();
fxPanel.setScene(scene);
}
JavaFX mit JFXPanel Komponente in 
Swing Anwendungen einbinden
public class Test {
private static void initAndShowGUI() {
// This method is invoked on Swing thread
JFrame frame = new JFrame("FX");
final JFXPanel fxPanel = new JFXPanel();
frame.add(fxPanel);
13 Copyright © 2012 Oracle and/or its affiliates. All rights reserved.
javax.swing.JComponent
javafx.embed.swing.JFXPanel
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
initAndShowGUI();
}
});
}
}
frame.add(fxPanel);
frame.setVisible(true);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFX(fxPanel);
}
});

4. Hello World in JavaFX Programming in Java

Java:
public class JavaFXExample extends Application {
@Override public void start(Stage stage){
Scene scene = new Scene(
LabelBuilder.create()
.text("Hello World!")
.layoutX(25)
22 Copyright © 2012 Oracle and/or its affiliates. All rights reserved.
.build());
stage.setTitle("Welcome to JavaFX!");
stage.setScene(scene);
stage.show();    
}
public static void main(String[] args) { 
launch(args); 
}
}
Ich hoffe, das hilft Dir/Euch erst mal weiter.

P.S. Wäre schön, wenn Ihr hier mal Euren Ansatz/Erfahrung postet. Der Bedarf in der Community ist sicher riesig!

Grüße,

OSBI_Fan

OSBI = Open Source Business Intelligence
 

Paddelpirat

Bekanntes Mitglied
Aber wo sind die Tools?

Hier z.B.: JavaFX Tools

Wobei ich selbst die normale JavaFX 2.2 API bevorzuge. Aber ich habe auch bei Swing keine GUI-Builder benutzt, außer um mal schnell was auszuprobieren...

Ansonsten kann man, wie du geschrieben hast JavaFX in Swing einbetten. Umgekehrt Swing in JavaFX einbetten geht nicht. Ist auch nicht gewollt, da Oracle möchte, dass die Leute auf JavaFX umsteigen.
 

JeromeC

Aktives Mitglied
Um überhaupt Webcam-Bilder in JavaFX einlesen zu können, haben wir uns von DSJ distanziert und es mit anderen Mitteln versucht. Folgende Lösung ist dabei herausgekommen:

1. OpenCV 2.42 extrahieren. Ich habe es unter "C:\Program Files\OpenCV"extrahiert
2. Zur Systemumgebungsvariable
C:\Program Files\OpenCV\build\common\tbb\intel64\vc10;C:\Program Files\OpenCV\build\x64\vc10\bin
hinzufügen. Das entscheidende ist tbb.dll in build\common\tbb\intel64\vc10
3. Microsoft Visual C++ 2010 Redistributable Package (x64) installieren: Download: Microsoft Visual C++ 2010 Redistributable Package (x64) - Microsoft Download Center - Download Details
4. Eclipse neu starten (vorsichtshalber, falls er bis dahin noch nicht die neuen Umgebungsvariablen eingelesen hat)
5. Neues Java-Project anlegen und dort einen lib-Folder
6. In lib kommen hinein:
javacpp.jar
javacv-windows-x86_64.jar
javacv.jar
7. Die JARs aus lib und die jfxrt.jar (findest Du in C:\Program Files\Java\jre7/lib) zum Build Path hinzufügen.
8. Package org.example Anlegen.
9. Die Klasse WebcamTest dort anlegen mit folgendem Quelltext:
Java:
package org.example;

import java.awt.image.BufferedImage;
import java.util.Timer;
import java.util.TimerTask;

import com.googlecode.javacv.OpenCVFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.PerspectiveTransform;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class WebcamTest extends Application {
    private OpenCVFrameGrabber grabber;
    private Timer timer;

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

    @Override
    public void start(Stage stage) throws Exception {
        final ImageView view = new ImageView();

        final PerspectiveTransform transform = new PerspectiveTransform();
        transform.setUlx(10.0f);
        transform.setUly(10.0f);

        transform.setUrx(450.0f);
        transform.setUry(90.0f);

        transform.setLlx(10.0f);
        transform.setLly(480.0f);

        transform.setLrx(450.0f);
        transform.setLry(400.0f);

        final DropShadow shadow = new DropShadow();
        shadow.setInput(transform);
        shadow.setOffsetX(3.0);
        shadow.setOffsetY(6.0);
        shadow.setColor(Color.GRAY);
        shadow.setRadius(15.0);

        view.setEffect(shadow);

        final Group root = new Group();
        root.getChildren().add(view);
        final Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.setWidth(800);
        stage.setHeight(600);
        stage.show();

        grabber = new OpenCVFrameGrabber(0);
        grabber.start();
        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                try {
                    final IplImage image = grabber.grab();
                    BufferedImage awtImage = image.getBufferedImage();
                    Image jfxImage = javafx.scene.image.Image
                            .impl_fromExternalImage(awtImage);
                    view.setImage(jfxImage);
                } catch (com.googlecode.javacv.FrameGrabber.Exception e) {
                }
            }
        }, 0, 1000 / 25);
    }

    @Override
    public void stop() throws Exception {
        super.stop();
        timer.cancel();
        grabber.stop();
    }
}

Ich danke meinen Vorredner für die Informationen und Tipps. Falls ihr noch andere Ansätze habt, wäre ich sehr erfreut sie zu erfahren.

Liebe Grüße, Jerome.

P.S.: Die hier Angegebe Lösung ist für x64-Plattformen.
P.P.S.: Habe gerade keine Möglichkeit gefunden, dem Thema einen Untertitel hinzuzufügen, aber sinnvoll wäre etwas zu ergänzen wie: "Webcam-Capture in JavaFX".
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
RalleYTN Swing JavaFX VideoPlayer in Swing einbetten. Ich komm nicht an die Dimension des Videos! AWT, Swing, JavaFX & SWT 0
J GUI Anfänger einfaches Program AWT, Swing, JavaFX & SWT AWT, Swing, JavaFX & SWT 3
T Swing Kompatibilitätsproblem zwischen Swing und JavaFX AWT, Swing, JavaFX & SWT 4
G Swing, JavaFx - Felder aus FXML sind null AWT, Swing, JavaFX & SWT 6
kaoZ Umstieg Swing -> javaFX AWT, Swing, JavaFX & SWT 1
B JavaFX 2 vs Swing AWT, Swing, JavaFX & SWT 3
S [Java+Scala] GUI mit Swing oder JavaFX AWT, Swing, JavaFX & SWT 6
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
Damtonix BufferStrategy flackert (Swing) AWT, Swing, JavaFX & SWT 9
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
D Swing in Kombination mit JGraphX und JGraphT AWT, Swing, JavaFX & SWT 0
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
S Java Swing Print() method AWT, Swing, JavaFX & SWT 4
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
S Manuelles Menu in Swing AWT, Swing, JavaFX & SWT 3
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
Java_RY Bin Ratlos bzgl Malen in Swing AWT, Swing, JavaFX & SWT 5
offi Swing Shuttle List AWT, Swing, JavaFX & SWT 9
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
M Swing Swing-Widgets und paintComponent() AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
K eigener button in swing AWT, Swing, JavaFX & SWT 3
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
windl Bufferstrategy in Swing nachstellen AWT, Swing, JavaFX & SWT 0
M Kamera in Java Swing einbinden AWT, Swing, JavaFX & SWT 4
Z Swing Swing und die Progressbar AWT, Swing, JavaFX & SWT 1
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
T swing läuft nur beding flüssig AWT, Swing, JavaFX & SWT 1
A Sonderzeichen bei Swing AWT, Swing, JavaFX & SWT 3
L DoubleBuffering unter Swing AWT, Swing, JavaFX & SWT 0
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
N JavaFX Umstieg von Swing auf Java FX AWT, Swing, JavaFX & SWT 6
M Swing Grundlegende Frage zu SWING mit WindowBuilder AWT, Swing, JavaFX & SWT 11
M Plugin oder eigenes Tool mit zB SWING AWT, Swing, JavaFX & SWT 2
Z Java-Swing : JComponent AWT, Swing, JavaFX & SWT 2
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben