Hinzufügen eines video-players auf ein JPanel in java mit VLCJ
Ich bin derzeit in der position-2 Stück Arbeit, die ich kombinieren will. Ich habe einen einfachen media-player läuft in einem JFrame und eine GUI möchte ich hinzufügen, video-Wiedergabe auf einem JPanel.
Den code für die, die erstellt video-player-Fensters ist wie folgt:
private final JFrame vidFrame;
private final EmbeddedMediaPlayerComponent vidComp;
//Creates JPanel for video player
public Video() {
vidFrame = new JFrame("VLC video test");
vidFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
vidFrame.setLocation(100, 100);
vidFrame.setSize(800, 800);
vidComp = new EmbeddedMediaPlayerComponent();
//This is the point where I am trying to add the video player to the GUI
MainWindow.vidPanel.add(vidComp);
vidFrame.add(vidComp);
vidFrame.setVisible(true);
}
- Und dies ist der Bereich, den ich versuche zu hinzufügen der Spieler:
JPanel vidPanel = new JPanel();
vidPanel.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
vidPanel.setBounds(10, 11, 532, 400);
contentPane.add(vidPanel);
Bekomme ich die Fehlermeldung: "vidPanel kann nicht aufgelöst werden oder ist nicht ein Feld"
Weiß jemand wie ich dies beheben können?
- Für bessere Hilfe früher, nach einem SSCCE. 2. code-snippet sollte, zusammengestellt haben oder einen anderen Fehler, wenn codiert, wie gezeigt. BTW -
setBounds(..
layouts Verwenden, um Probleme zu vermeiden später.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, es sieht aus wie Ihre
vidPanel
ist eine lokale variable und ein Feld, wenn Sie brauchen, um es von anderen Methoden. Dies ist eine ziemlich grundlegende Stück Java - jedem Anfänger-tutorial sollte für diese. VLCJ ist nicht die einfachste Sache zu verwenden, und Sie können kommen unstuck, wenn Sie nicht klar auf die Grundlagen.Zweitens, bevor Sie den Kopf zu weit nach unten, dass die Spur, die eine eingebettete VLCJ-player funktioniert nicht mit einem JPanel, nur einen nativen AWT-Canvas - so müssen Sie das stattdessen benutzen.
Ich habe das gleiche problem und einfach zu lösen Sie es heute. Das problem ist, du bist mit einem JPanel und Sie werden nie in der Lage sein, ein video ansehen, um es zu verwenden, sollten Sie eine Leinwand statt. Das ist was für mich gearbeitet:
Ich bin mit dem JDK 1.6 und VLCJ 2.1
Wenn Sie mit einer IDE einfach eine Leinwand genau so, wie Sie platziert das JPanel und löschen die erste Zeile.
Glück
Zunächst scheint es mir, dass
vidPanel
ist definiert als eine lokale variable, die machen es zu einem member-Bereich durch die Definition in der Gültigkeitsbereich der Klasse (nicht in einer Methode).Dies ist nicht, wie Sie in einem echten wartbaren code, sondern nur um eine schnelle Lösung zu deinem problem: Definieren Sie eine
getVidPanel()
Funktion im Hauptfenster gibtvidPanel
.Dann, statt das fehlerhafte Zeile verwenden Sie die folgenden: