SWT Browser in Swing

Status
Nicht offen für weitere Antworten.
I

ich²

Gast
Hi,

ich würde gerne den Browser aus SWT in Swing einbauen. Dazu habe ich auch schon ein Codeschnippsel gefunden:

Code:
import java.awt.Canvas;

import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class BrowserSwingPanel {

	public static void main(String[] a) {
		JFrame frame = new JFrame("SWING browser"); 
		Canvas canvas = new Canvas();

		frame.setVisible(true);
		frame.setBounds(0, 0, 500, 500);
		canvas.setBounds(0, 0, 400, 400);
		frame.add(canvas);

		final Display display = new Display();
		final Shell shell = SWT_AWT.new_Shell(display, canvas);

		shell.setSize(400, 400);

		shell.setLayout(new FillLayout());
		shell.setBackground(new Color(display, 255, 0, 0));

		final Browser browser = new Browser(shell, SWT.NONE);

		browser.setUrl("www.google.com");

		shell.open();
		frame.validate();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose(); 
	}
}

Funktioniert auch ganz gut in Eclipse, aber ich weiß nicht, wie ich diese Mini-Anwendung deployen soll. Ich hab die swt.jar in den Classpath der JAR-Datei geschrieben, aber es hat nicht geholfen. Ich bekomme zwar keine Fehlermeldung, aber anstelle der Startseite von google bekomme ich nur ein rotes Fenster angezeigt ???:L .

Danke

ich²
 

Wildcard

Top Contributor
Der SWT Browser ist doch nichts weiter als ein XULRunner, warum verwendest du den nicht direkt?
 
I

ich²

Gast
Hi wildcard,

ein XULRunner? ???:L ... noch nie davon gehört. Nach erstem Überfliegen des Wikipedia-Artikels kann man damit externe Anwendungen einbinden!? Wie funktioniert das?

Wichtig ist, dass ich mitbekomme, wenn sich die Titelleiste verändert.

Danke!

lg

ich²
 
I

ich²

Gast
Also so gehts:

Code:
import java.awt.Canvas;

import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class BrowserSwingPanel {

	public static void main(String args[]) {
		
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Canvas canvas = new Canvas();
		f.setSize(500, 400);
		f.add(canvas);
		f.setVisible(true);
		Display display = new Display();
		Shell shell = SWT_AWT.new_Shell(display, canvas);
		shell.setSize(500, 400);
		Browser browser = new Browser(shell, SWT.NONE);
		browser.setSize(500, 400);
		browser.setUrl("http://www.google.com");
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
}

Nur bekomm ich beim Beenden der Applikation immer einen VMError:

#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d897336, pid=4728, tid=4764
#
# Java VM: Java HotSpot(TM) Client VM (10.0-b19 mixed mode, sharing windows-x86)
# Problematic frame:
# V [jvm.dll+0xd7336]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#

--------------- T H R E A D ---------------

Current thread (0x00295800): JavaThread "main" [_thread_in_vm, id=4764, stack(0x008c0000,0x00910000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

Registers:
EAX=0x00000000, EBX=0x002958f4, ECX=0x00000006, EDX=0x0090f97c
ESP=0x0090f8f0, EBP=0x00000000, ESI=0x00295800, EDI=0x00000000
EIP=0x6d897336, EFLAGS=0x00010246

Top of Stack: (sp=0x0090f8f0)
0x0090f8f0: 00000000 00000000 0090f970 00000000
0x0090f900: 00295800 00000000 0090fa10 6d983d10
0x0090f910: 6d9852f0 ffffffff 00000000 6d7c10df
0x0090f920: 00295800 00295800 6d89107d 00295800
0x0090f930: 00000006 00000004 00000000 10001462
0x0090f940: 002958f4 00000000 00000000 0090f97c
0x0090f950: 0090f9f4 034d0000 00000000 00000000
0x0090f960: 00000000 00000000 002958f4 00295f38

Instructions: (pc=0x6d897336)
0x6d897326: 14 74 09 8d 4c 24 10 e8 8e 62 08 00 8b 7c 24 58
0x6d897336: 8b 07 c7 44 24 20 0a 00 00 00 8b 48 08 0f b7 51


Stack: [0x008c0000,0x00910000], sp=0x0090f8f0, free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xd7336]

[error occurred during error reporting (printing native stack), id 0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::Interpreter
v ~BufferBlob::StubRoutines (1)

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x02fb5400 JavaThread "Thread-1" daemon [_thread_in_native, id=4932, stack(0x0d520000,0x0d570000)]
0x02b2a800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=992, stack(0x03130000,0x03180000)]
0x02a92c00 JavaThread "AWT-Windows" daemon [_thread_in_native, id=5860, stack(0x02e70000,0x02ec0000)]
0x02a92400 JavaThread "AWT-Shutdown" [_thread_blocked, id=4816, stack(0x02e20000,0x02e70000)]
0x02a81400 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=5004, stack(0x02dd0000,0x02e20000)]
0x02a5d400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4868, stack(0x02d10000,0x02d60000)]
0x02a57c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=4368, stack(0x02cc0000,0x02d10000)]
0x02a56800 JavaThread "Attach Listener" daemon [_thread_blocked, id=1444, stack(0x02c70000,0x02cc0000)]
0x02a55c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6120, stack(0x02c20000,0x02c70000)]
0x02a51400 JavaThread "Finalizer" daemon [_thread_blocked, id=5188, stack(0x02bd0000,0x02c20000)]
0x02a4d000 JavaThread "Reference Handler" daemon [_thread_blocked, id=4360, stack(0x02b80000,0x02bd0000)]
=>0x00295800 JavaThread "main" [_thread_in_vm, id=4764, stack(0x008c0000,0x00910000)]

Other Threads:
0x02a4bc00 VMThread [stack: 0x02b30000,0x02b80000] [id=5620]
0x02a67400 WatcherThread [stack: 0x02d60000,0x02db0000] [id=4772]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
def new generation total 960K, used 479K [0x22960000, 0x22a60000, 0x22e40000)
eden space 896K, 51% used [0x22960000, 0x229d2e70, 0x22a40000)
from space 64K, 31% used [0x22a50000, 0x22a55100, 0x22a60000)
to space 64K, 0% used [0x22a40000, 0x22a40000, 0x22a50000)
tenured generation total 4096K, used 451K [0x22e40000, 0x23240000, 0x26960000)
the space 4096K, 11% used [0x22e40000, 0x22eb0ec0, 0x22eb1000, 0x23240000)
compacting perm gen total 12288K, used 1374K [0x26960000, 0x27560000, 0x2a960000)
the space 12288K, 11% used [0x26960000, 0x26ab7bd8, 0x26ab7c00, 0x27560000)
ro space 8192K, 62% used [0x2a960000, 0x2ae62a28, 0x2ae62c00, 0x2b160000)
rw space 12288K, 52% used [0x2b160000, 0x2b7a86b8, 0x2b7a8800, 0x2bd60000)

Dynamic libraries:
0x00400000 - 0x00423000 C:\WINNT\system32\java.exe
0x7c910000 - 0x7c9c7000 C:\WINNT\system32\ntdll.dll
0x7c800000 - 0x7c906000 C:\WINNT\system32\kernel32.dll
0x77da0000 - 0x77e4a000 C:\WINNT\system32\ADVAPI32.dll
0x77e50000 - 0x77ee1000 C:\WINNT\system32\RPCRT4.dll
0x7c340000 - 0x7c396000 C:\Programme\Java\jre1.6.0_05\bin\msvcr71.dll
0x6d7c0000 - 0x6da10000 C:\Programme\Java\jre1.6.0_05\bin\client\jvm.dll
0x77d10000 - 0x77da0000 C:\WINNT\system32\USER32.dll
0x77ef0000 - 0x77f36000 C:\WINNT\system32\GDI32.dll
0x76af0000 - 0x76b1e000 C:\WINNT\system32\WINMM.dll
0x76330000 - 0x7634d000 C:\WINNT\system32\IMM32.DLL
0x6d270000 - 0x6d278000 C:\Programme\Java\jre1.6.0_05\bin\hpi.dll
0x76bb0000 - 0x76bbb000 C:\WINNT\system32\PSAPI.DLL
0x6d770000 - 0x6d77c000 C:\Programme\Java\jre1.6.0_05\bin\verify.dll
0x6d310000 - 0x6d32f000 C:\Programme\Java\jre1.6.0_05\bin\java.dll
0x6d7b0000 - 0x6d7bf000 C:\Programme\Java\jre1.6.0_05\bin\zip.dll
0x6d000000 - 0x6d12e000 C:\Programme\Java\jre1.6.0_05\bin\awt.dll
0x72f70000 - 0x72f96000 C:\WINNT\system32\WINSPOOL.DRV
0x77be0000 - 0x77c38000 C:\WINNT\system32\msvcrt.dll
0x774b0000 - 0x775ec000 C:\WINNT\system32\ole32.dll
0x736d0000 - 0x73719000 C:\WINNT\system32\ddraw.dll
0x73b30000 - 0x73b36000 C:\WINNT\system32\DCIMAN32.dll
0x6d210000 - 0x6d263000 C:\Programme\Java\jre1.6.0_05\bin\fontmanager.dll
0x746a0000 - 0x746eb000 C:\WINNT\system32\MSCTF.dll
0x75250000 - 0x7527e000 C:\WINNT\system32\msctfime.ime
0x7c9d0000 - 0x7d1ee000 C:\WINNT\system32\shell32.dll
0x77f60000 - 0x77fd6000 C:\WINNT\system32\SHLWAPI.dll
0x773a0000 - 0x774a2000 C:\WINNT\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll
0x5d450000 - 0x5d4e7000 C:\WINNT\system32\comctl32.dll
0x770f0000 - 0x7717c000 C:\WINNT\system32\OLEAUT32.DLL
0x10000000 - 0x1004f000 C:\Dokumente und Einstellungen\blob\Lokale Einstellungen\Temp\swt-win32-3349.dll
0x76350000 - 0x7639a000 C:\WINNT\system32\comdlg32.dll
0x75790000 - 0x757fb000 C:\WINNT\system32\USP10.dll
0x7f400000 - 0x7f4d0000 C:\WINNT\system32\WININET.dll
0x03220000 - 0x03229000 C:\WINNT\system32\Normaliz.dll
0x7f560000 - 0x7f68e000 C:\WINNT\system32\urlmon.dll
0x5dca0000 - 0x5dce5000 C:\WINNT\system32\iertutil.dll
0x77270000 - 0x77296000 C:\WINNT\system32\IESetting.dll
0x6d340000 - 0x6d346000 C:\Programme\Java\jre1.6.0_05\bin\jawt.dll
0x034e0000 - 0x034e8000 C:\Dokumente und Einstellungen\blob\Lokale Einstellungen\Temp\swt-awt-win32-3349.dll
0x5b0f0000 - 0x5b128000 C:\WINNT\system32\uxtheme.dll
0x76f90000 - 0x7700f000 C:\WINNT\system32\CLBCATQ.DLL
0x77010000 - 0x770e3000 C:\WINNT\system32\COMRes.dll
0x77bd0000 - 0x77bd8000 C:\WINNT\system32\VERSION.dll
0x7f800000 - 0x7ffa9000 C:\WINNT\system32\ieframe.dll
0x036e0000 - 0x036f1000 C:\WINNT\system32\Secur32.dll
0x71a10000 - 0x71a27000 C:\WINNT\system32\ws2_32.dll
0x71a00000 - 0x71a08000 C:\WINNT\system32\WS2HELP.dll
0x76970000 - 0x76a21000 C:\WINNT\system32\SXS.DLL
0x20000000 - 0x202d9000 C:\WINNT\system32\xpsp2res.dll
0x0c650000 - 0x0c916000 C:\WINNT\system32\msi.dll
0x77b10000 - 0x77b32000 C:\WINNT\system32\appHelp.dll
0x719b0000 - 0x719f0000 C:\WINNT\system32\mswsock.dll
0x66710000 - 0x66769000 C:\WINNT\system32\hnetcfg.dll
0x719f0000 - 0x719f8000 C:\WINNT\System32\wshtcpip.dll
0x76ea0000 - 0x76edc000 C:\WINNT\system32\RASAPI32.dll
0x76e50000 - 0x76e62000 C:\WINNT\system32\rasman.dll
0x597d0000 - 0x59824000 C:\WINNT\system32\NETAPI32.dll
0x76e70000 - 0x76e9f000 C:\WINNT\system32\TAPI32.dll
0x76e40000 - 0x76e4e000 C:\WINNT\system32\rtutils.dll
0x76620000 - 0x766d5000 C:\WINNT\system32\USERENV.dll
0x77c40000 - 0x77c63000 C:\WINNT\system32\msv1_0.dll
0x76d20000 - 0x76d39000 C:\WINNT\system32\iphlpapi.dll
0x72240000 - 0x72245000 C:\WINNT\system32\sensapi.dll
0x76f80000 - 0x76f86000 C:\WINNT\system32\rasadhlp.dll
0x76ee0000 - 0x76f07000 C:\WINNT\system32\DNSAPI.dll
0x71f10000 - 0x71f14000 C:\WINNT\system32\security.dll
0x75dc0000 - 0x75e51000 C:\WINNT\system32\MLANG.dll
0x7ef00000 - 0x7f3e5000 C:\WINNT\system32\mshtml.dll
0x0cc20000 - 0x0cc49000 C:\WINNT\system32\msls31.dll
0x47060000 - 0x47081000 C:\WINNT\system32\XmlLite.dll
0x77a50000 - 0x77ae5000 C:\WINNT\system32\CRYPT32.dll
0x77af0000 - 0x77b02000 C:\WINNT\system32\MSASN1.dll
0x74670000 - 0x7469a000 C:\WINNT\system32\msimtf.dll
0x63380000 - 0x63408000 C:\WINNT\system32\jscript.dll
0x778f0000 - 0x779e4000 C:\WINNT\system32\SETUPAPI.dll
0x1b000000 - 0x1b00c000 C:\WINNT\system32\ImgUtil.dll
0x1b060000 - 0x1b06e000 C:\WINNT\system32\pngfilt.dll

VM Arguments:
java_command: Test.jar
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=.;C:\PROGRA~1\IBM\SQLLIB\java\db2java.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.jar;C:\PROGRA~1\IBM\SQLLIB\bin;C:\PROGRA~1\IBM\SQLLIB\java\common.jar
PATH=C:\Programme\CA\Dcs\DMScripting\;C:\Programme\CA\DCS\CAWIN\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Programme\CA\Unicenter Software Delivery\BIN;C:\Programme\CA\SharedComponents\CAM\bin;C:\PROGRA~1\IBM\SQLLIB\BIN;C:\PROGRA~1\IBM\SQLLIB\FUNCTION;C:\MinGW\bin\;C:\MSYS\bin\;C:\MSYS\mingw\
USERNAME=blob
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 15 Model 4 Stepping 10, GenuineIntel



--------------- S Y S T E M ---------------

OS: Windows XP Build 2600 Service Pack 2

CPU:total 2 (1 cores per cpu, 2 threads per core) family 15 model 4 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ht

Memory: 4k page, physical 2097151k(1427608k free), swap 4194303k(3575900k free)

vm_info: Java HotSpot(TM) Client VM (10.0-b19) for windows-x86 JRE (1.6.0_05-b13), built on Feb 22 2008 01:16:53 by "java_re" with MS VC++ 7.1

time: Mon May 19 15:09:14 2008
elapsed time: 5 seconds

Muss ich SWT irgendwie "besonders" beenden? Oder die SWT_AWT Bridge irgendwie closen?

Danke!

lg

ich²
 

The_S

Top Contributor
Versuchs mal so

Code:
import java.awt.Canvas;

import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class BrowserSwingPanel {

   public static void main(String args[]) {
      
      JFrame f = new JFrame();
      f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
      Canvas canvas = new Canvas();
      f.setSize(500, 400);
      f.add(canvas);
      f.setVisible(true);
      Display display = new Display();
      Shell shell = SWT_AWT.new_Shell(display, canvas);
      shell.setSize(500, 400);
      Browser browser = new Browser(shell, SWT.NONE);
      browser.setSize(500, 400);
      browser.setUrl("http://www.google.com");
      shell.open();
      while (!shell.isDisposed() && f.isVisible()) {
         if (!display.readAndDispatch())
            display.sleep();
      }
      display.dispose();
      f.dispose();
   }
}
 
G

Guest

Gast
Hobbit_Im_Blutrausch hat gesagt.:
Versuchs mal so

Code:
import java.awt.Canvas;

import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class BrowserSwingPanel {

   public static void main(String args[]) {
      
      JFrame f = new JFrame();
      f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
      Canvas canvas = new Canvas();
      f.setSize(500, 400);
      f.add(canvas);
      f.setVisible(true);
      Display display = new Display();
      Shell shell = SWT_AWT.new_Shell(display, canvas);
      shell.setSize(500, 400);
      Browser browser = new Browser(shell, SWT.NONE);
      browser.setSize(500, 400);
      browser.setUrl("http://www.google.com");
      shell.open();
      while (!shell.isDisposed() && f.isVisible()) {
         if (!display.readAndDispatch())
            display.sleep();
      }
      display.dispose();
      f.dispose();
   }
}

Cool! Nach so einer Möglichkeit hab ich auch schon gesucht. :)
Gibt es so etwas ähnliches auch für den VLC-Player?
Ich hab schon mit dem jvlc probiert, es aber nicht wirklich hinbekommen.
VG,
ROlf
 

The_S

Top Contributor
kA, evtl. kann man mit SWT auch den Standardplayer einbinden. So gut kenn ich mich mit SWT nicht aus, meine ganzen Projekte sind bis jetzt auch alle in Swing gehalten.
 
F

Flinn

Gast
das erzeugen eines SWT-Browsers mit diesem Code-Schnippsel funktioniert bei mir wunderbar, allerdings erhalte ich eine NullPointerException in der AWT-Event-Queue sobald ich mit dem Objekt interagieren will.

Gibt es beim Einbinden von SWT in Swing etwas zu beachten, dass hier noch erwähnt ist?
 

Wildcard

Top Contributor
Flinn hat gesagt.:
Gibt es beim Einbinden von SWT in Swing etwas zu beachten, dass hier noch erwähnt ist?
Ja, du hast dann zwei UI Threads was einen enormen Synchronisationsaufwand mit sich bringt. Alles was von SWT an Swing geht muss mit invokeLater synchronisiert werden, alles was von Swing an SWT geht mit Display.asyncExec.
Über allem hängt dann noch die konstante Gefahr zufälliger Deadlocks in den Tiefen beider Toolkits.
 

beastofchaos

Bekanntes Mitglied
Tschuldigt, dass ich so einfach hereinbreche, aber wo ist denn eine offizielle Seite, wo man das package org.eclipse runterladen kann?

Gruß, Thomas
 

b0312

Mitglied
Versuchs mal so

Code:
import java.awt.Canvas;

import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class BrowserSwingPanel {

   public static void main(String args[]) {
      
      JFrame f = new JFrame();
      f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
      Canvas canvas = new Canvas();
      f.setSize(500, 400);
      f.add(canvas);
      f.setVisible(true);
      Display display = new Display();
      Shell shell = SWT_AWT.new_Shell(display, canvas);
      shell.setSize(500, 400);
      Browser browser = new Browser(shell, SWT.NONE);
      browser.setSize(500, 400);
      browser.setUrl("http://www.google.com");
      shell.open();
      while (!shell.isDisposed() && f.isVisible()) {
         if (!display.readAndDispatch())
            display.sleep();
      }
      display.dispose();
      f.dispose();
   }
}

Hallo an alle!

Diesen Code habe ich auch probiert, da ich ein SWT Element in mein Swing UI einbauen will.
Leider, bekommt die "shell" bei der Methode "SWT_AWT.new_Shell(display, canvas)" den Wert "null" somit kommt dann auch eine "NullPointerException" bei der Methode "shell.setSize(500,400);

Ich finde hier nicht den Fehler, kann mir jemand weiterhelfen ?

Das ganze verwende ich in Netbeans IDE 7.0.1.
Die SWT API habe ich mir von der Eclipse Homepage heruntergeladen und in mein Projekt eingebunden.
Mein System: Windows XP

greeTz*
B0312
 

Sonecc

Gesperrter Benutzer
Die Methode SWT_AWT.new_Shell kann kein null zurückgeben.
Der Fehler liegt also nicht dort.

Es kann aber passieren, dass innerhalb der Methode Exceptions geworfen werden.

Poste mal bitte den Stacktrace deiner Exception
 

b0312

Mitglied
wird nicht viel angezeigt

Java:
debug:
java.lang.NullPointerException
	at BrowserSwingPanel.main(BrowserSwingPanel.java:27)

ausser das eben shell "NULL" ist.
 

b0312

Mitglied
Das Problem war, das es im NetBeans nicht funktioniert hat. Hab denselben Quellcode mit denselben APIs auf Eclipse probiert und siehe da, es funktioniert.

Leider hapert es noch an der Umsetzung in meinem Programm, dort gibt es aber eine umfangreichere Fehlerbeschreibung.

System: Windows XP
Entwicklungsumgebung: Eclipse Indigo

QUELLCODE:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * 
 *
 * 
 */
package gui.machines;

import java.awt.Canvas;

import javax.swing.JFrame;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

/**
 *
 * 
 */
public class machines extends javax.swing.JPanel {

    /** Creates new form machines */
    public machines() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
    	
        canvas1 = new Canvas();
        setSize(500, 400);
        //setBackground(new java.awt.Color(255, 255, 255));
        add(canvas1);
        setVisible(true);
        Display display = new Display();
        Shell shell = SWT_AWT.new_Shell(display, canvas1);
        shell.setSize(300,400);
        Browser browser = new Browser(shell, SWT.NONE);
        browser.setSize(300, 400);
        browser.setUrl("http://www.google.com");
        shell.open();
        while (!shell.isDisposed() && isVisible()) {
        	if (!display.readAndDispatch())
        		display.sleep();
        }
      display.dispose();

    }// </editor-fold>//GEN-END:initComponents
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private java.awt.Canvas canvas1;
    // End of variables declaration//GEN-END:variables
}

FEHLERMELDUNG:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Argument not valid [peer not created]
	at org.eclipse.swt.SWT.error(Unknown Source)
	at org.eclipse.swt.awt.SWT_AWT.new_Shell(Unknown Source)
	at gui.machines.machines.initComponents(machines.java:49)
	at gui.machines.machines.<init>(machines.java:31)
	at gui.main.gui.<init>(gui.java:149)
	at gui.main.gui$5.run(gui.java:136)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Das UserInterface (eig. nur ein JPanel) habe ich im GUI-Bilder von NetBeans erstellt.
 

Sonecc

Gesperrter Benutzer
Die Problematik entsteht nativ.
Da bist du eventuell im Eclipse Forum besser aufgehoben. Ich persönlich kann dir dabei kaum weiterhelfen
 

Michael...

Top Contributor
obiger Code funktioniert und dieser funktioniert nicht?
Vermutlich liegt das daran, dass die ganze SWT Geschichte im Kontext des Konstruktors der Klasse (Klassennamen schreibt man groß) passiert und das JPanel nicht sichtbar ist.
Ich denke das Abbilden eines SWT Objekts auf einem AWT Objekt ist nur möglich wenn letzeres auch aktuell sichtbar ist.
(Warum erbst die Klasse von JPanel wenn Du das ganze sowieso auf ein Canvas machst?)
 

b0312

Mitglied
Es ist so das ich eine Klasse GUI habe
wo 4 TabbedPanels eingebaut sind.
In diesen 4 TabbedPanels werden verschiedene Panels angezeigt, die in eigenen Klassen geschrieben sind (die von JPanel erben).
Je nach dem auf welches Tab man klickt, wird ein JPanel angezeigt.

Was SWT angeht, ich habe es geschafft, das ganze in einem eigenen JFrame abzubilden. Jedoch will ich die SWT-Komponente im JPanel haben, dass dann im TabbedPanel angezeigt wird, wenn man auf den Tab klickt.
 

Michael...

Top Contributor
Hab's gerade getestet und meine Vermutung wurde bestätigt: Die Komponente auf die die SWT Komponente abgebildet werden soll muss sichtbar sein bevor
Code:
SWT_AWT.newShell(...)
aufgerufen wird, da die SWT Komponente sofort ein existierendes Peer-Objekt benötigt über das sie sich auf der AWT Komponente zeichnen kann.
 

b0312

Mitglied
Wenn ich aber mein Panel sichtbar mache, funktioniert es trotzdem nicht ?
Und das JFrame ist zu der Zeit wo das ausgeführt wird sowieso schon sichtbar
 

Michael...

Top Contributor
Da muss ich mich verbessern. Ich meinte es muss angezeigt werden (darf auch neben dem Monitor angezeigt werden ;-))
und ich bezweifle, dass eine Komponente die gerade "konstruiert" wird irgendwo angezeigt wird.
 

Michael...

Top Contributor
Aber mir fällt keine Lösung ein :bahnhof:
Du musst Deinen Frame inkl. Canvas fertigbauen und anzeigen lassen. Danach übergibst Du die Referenz auf das Canvas Objekt z.B. an eine Methode die das SWT darauf klatscht. Vom Prinzip her wie in dem funktionierenden Bsp. Code. Alles nach f.setVisible(true) könnte man in diese Methode stecken.
Wenn Du das ganze aber in einer AWT Komponente kapseln willst, wird evtl. schwierig. Da müsstest Du Dich vielleicht in Canvas oder Component reinhacken, um an der richtigen Stelle einzuhaken...
 

b0312

Mitglied
Vielen Dank!

Ich mache es nun so, dass ich ein neues JFrame erzeuge und dort ist dann meine SWT Komponente (ich möchte das Nebula GANTT verwenden)

Das JFrame wird angezeigt, verändert kurz seine Farbe, aber das GANTT Diagramm das ich mir aus einem Code Snippet von Nebula GANTT geholt habe, wird nicht angezeigt.

Irgendwas läuft schief mit dem
Code:
setVisible(true);
.. ich habe es mit
Code:
addNotify();
probiert und am Ende erst das
Code:
setVisible(true)
aber es funktioniert auch nicht.
irgendwie kommt mir auch vor das es Konflikte mit
Code:
 dispose()
und
Code:
 display.dispose()
gibt.

Hier mein Code:

GUI.java:
Java:
...
private void jXPanel2ComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jXPanel2ComponentShown
// TODO add your handling code here:
    //setPanelMain(jXPanel2, machines);
	MachinesFrame mF = new MachinesFrame();
	mF.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    
}//GEN-LAST:event_jXPanel2ComponentShown
...

MachinesFrame.java:
Java:
package gui.machines;


/*******************************************************************************
 * Copyright (c) Emil Crumhorn - Hexapixel.com - [email]emil.crumhorn@gmail.com[/email]
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * [url=http://www.eclipse.org/legal/epl-v10.html]Eclipse Public License - Version 1.0[/url]
 *
 * Contributors:
 *    [email]emil.crumhorn@gmail.com[/email] - initial API and implementation
 *******************************************************************************/

import java.awt.Canvas;
import java.util.Calendar;
import java.util.List;

import javax.swing.JFrame;

import org.eclipse.nebula.widgets.ganttchart.AdvancedTooltip;
import org.eclipse.nebula.widgets.ganttchart.DateHelper;
import org.eclipse.nebula.widgets.ganttchart.GanttChart;
import org.eclipse.nebula.widgets.ganttchart.GanttEvent;
import org.eclipse.nebula.widgets.ganttchart.GanttGroup;
import org.eclipse.nebula.widgets.ganttchart.GanttSection;
import org.eclipse.nebula.widgets.ganttchart.themes.ColorThemeSilver;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

/**
 * This Snippet shows a bit of everything that the chart can do.
 * 
 */
public class MachinesFrame extends javax.swing.JFrame{
	Display display;
	Shell shell;
	public MachinesFrame() {
		initComponents();
	}
	//public static void main(String args []) {
	private void initComponents(){

		//JFrame f = new JFrame();
		setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        setTitle("GANTT");
		Canvas canvas = new Canvas();
		setSize(500, 400);
		add(canvas);
		setVisible(true);
		//addNotify();
		display = new Display();
		shell = SWT_AWT.new_Shell(display, canvas);
		shell.setSize(500, 400);
		shell.setLayout(new FillLayout());

		// Create a chart
		final GanttChart ganttChart = new GanttChart(shell, SWT.NONE, null,
				new ColorThemeSilver(), null, null);

		// Create some sections
		GanttSection sectionOne = new GanttSection(ganttChart, "Section 1");
		GanttSection sectionTwo = new GanttSection(ganttChart, "Section 2");
		GanttSection sectionThree = new GanttSection(ganttChart, "Section 3");

		// Create some calendars
		Calendar sdEventOne = Calendar.getInstance();
		Calendar edEventOne = Calendar.getInstance();
		edEventOne.add(Calendar.DATE, 10);

		Calendar sdEventTwo = Calendar.getInstance();
		Calendar edEventTwo = Calendar.getInstance();
		sdEventTwo.add(Calendar.DATE, 11);
		edEventTwo.add(Calendar.DATE, 15);

		Calendar cpDate = Calendar.getInstance();
		cpDate.add(Calendar.DATE, 16);

		// Create events
		GanttEvent eventOne = new GanttEvent(ganttChart, "Scope Event 1",
				sdEventOne, edEventOne, 35);
		eventOne.setFixedRowHeight(100);
		eventOne.setVerticalEventAlignment(SWT.CENTER);
		// lock this event down to a date span with both start and end dates
		Calendar sdEventOneLock = Calendar.getInstance();
		Calendar edEventOneLock = Calendar.getInstance();
		sdEventOneLock.add(Calendar.DATE, -5);
		edEventOneLock.add(Calendar.DATE, 15);
		eventOne.setNoMoveBeforeDate(sdEventOneLock);
		eventOne.setNoMoveAfterDate(edEventOneLock);

		// Create an advanced custom tooltip
		StringBuffer buf = new StringBuffer();
		buf.append("\\ceRevised: #rs# - #re# (#reviseddays# days)\n");
		buf.append("\\c100100100Planned: #sd# - #ed# (#days# days)\n");
		buf.append("\\c100000000Locked start: ");
		buf.append(DateHelper.getDate(sdEventOneLock, ganttChart.getSettings()
				.getDateFormat()));
		buf.append("\n");
		buf.append("\\c100000000Locked end: ");
		buf.append(DateHelper.getDate(edEventOneLock, ganttChart.getSettings()
				.getDateFormat()));
		buf.append("\n");
		buf.append("\\x#pc#% complete");

		AdvancedTooltip at = new AdvancedTooltip(eventOne.getName(),
				buf.toString());
		eventOne.setAdvancedTooltip(at);

		GanttEvent eventTwo = new GanttEvent(ganttChart, "Scope Event 2",
				sdEventTwo, edEventTwo, 10);

		// lock only the end date
		Calendar edEventTwoLock = Calendar.getInstance();
		edEventTwoLock.add(Calendar.DATE, 30);
		eventTwo.setNoMoveAfterDate(edEventTwoLock);

		GanttEvent eventThree = new GanttEvent(ganttChart, "Checkpoint",
				cpDate, cpDate, 75);
		eventThree.setCheckpoint(true);

		// opacities and layers
		eventOne.setLayer(1);
		eventTwo.setLayer(2);
		eventThree.setLayer(3);
		ganttChart.getGanttComposite().setLayerOpacity(1, 50);
		ganttChart.getGanttComposite().setLayerOpacity(2, 150);
		ganttChart.getGanttComposite().setLayerOpacity(3, 220);

		// Put the events in their respective sections
		sectionOne.addGanttEvent(eventOne);
		sectionOne.addGanttEvent(eventTwo);
		sectionOne.addGanttEvent(eventThree);

		// Create some groups
		GanttGroup groupOne = new GanttGroup(ganttChart);
		GanttGroup groupTwo = new GanttGroup(ganttChart);

		// Create 5 events for each group
		for (int x = 1; x <= 2; x++) {
			int start = 1;
			for (int i = 1; i < 6; i++) {
				Calendar tempStart = Calendar.getInstance();
				Calendar tempEnd = Calendar.getInstance();
				tempStart.add(Calendar.DATE, start);
				tempEnd.add(Calendar.DATE, start + 1);
				GanttEvent temp = new GanttEvent(ganttChart, x + ":" + i,
						tempStart, tempEnd, 50);

				if (x == 1)
					groupOne.addEvent(temp);
				else
					groupTwo.addEvent(temp);

				start += 9;
			}
		}

		sectionTwo.addGanttEvent(groupOne);

		// now let's squeeze a single event in between two groups
		Calendar sdEventFour = Calendar.getInstance();
		Calendar edEventFour = Calendar.getInstance();
		sdEventFour.add(Calendar.DATE, 4);
		edEventFour.add(Calendar.DATE, 13);
		GanttEvent eventFour = new GanttEvent(ganttChart, "Scope Event 4",
				sdEventFour, edEventFour, 40);
		eventFour.setFixedRowHeight(50);
		eventFour.setVerticalEventAlignment(SWT.CENTER);
		sectionTwo.addGanttEvent(eventFour);
		// Create connections
		ganttChart.addConnection(eventOne, eventTwo);
		ganttChart.addConnection(eventTwo, eventThree);
		// reverse one connection back up (not logical, but doable)
		ganttChart.addConnection(eventThree, eventOne);

		// and another group
		sectionTwo.addGanttEvent(groupTwo);

		// Let's connect all events in one group in one direction, and the other
		// in reverse
		// Note: It's not suggested to have connections between same-group
		// events.
		List groupOneEvents = groupOne.getEventMembers();
		for (int i = 0; i < groupOneEvents.size(); i++) {
			if (i >= 1) {
				GanttEvent ge1 = (GanttEvent) groupOneEvents.get(i - 1);
				GanttEvent ge2 = (GanttEvent) groupOneEvents.get(i);
				ganttChart.addConnection(ge1, ge2);
			}
		}

		// Now reverse.. do note that this makes really no sense for a lot of
		// reasons, but it's possible to do regardless
		List groupTwoEvents = groupTwo.getEventMembers();
		for (int i = groupTwoEvents.size() - 1; i >= 0; i--) {
			if (i > 0) {
				GanttEvent ge1 = (GanttEvent) groupTwoEvents.get(i);
				GanttEvent ge2 = (GanttEvent) groupTwoEvents.get(i - 1);
				ganttChart.addConnection(ge1, ge2);
			}
		}

		// move chart start date to the earliest event
		ganttChart.getGanttComposite().jumpToEarliestEvent();

		// Show chart
		shell.open();

		while (!shell.isDisposed() && isVisible()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		
		display.dispose();
		dispose();
	}
}
 

Michael...

Top Contributor
Hab keine Ahnung von SWT aber ich würde mal vermuten dass es jetzt nicht direkt mit SWT zusammenhängt, sondern mit der while Schleife am Ende der initComponents(), die ja in dem Fall eine Endlosschleife innerhalb des EDT ist. Somit wird die initComponents() bzw. der Konstruktor niemals verlassen und der EDT dauerhaft blockiert. Was in dem Demobeispiel einfach funktioniert, da ja quasi nur eine SWT Komponente angezeigt wird, funktioniert im Zusammenspiel mit Swing Komponenten nicht mehr ganz so einfach. Ein blockierender EDT kann natürlich keine Swing Komponenten mehr aktualisieren. Daher muss diese Schleife in einen separaten Thread ausgelagert werden.

Allgemein schaut es so aus als ist da aktuell viel zu viel Code. Weiss nicht ob die ganzen Calendar und Einstellung sein müssen, wenn eh nichts angezeigt wird.
Lieber mal klein und mit dem notwendigsten anfangen. Wenn das funktioniert das ganze Stück für Stück ausbauen. Bei Problemen wieder ein Stück zurück.

Hier mal ein Bsp zum auslagern der Schleife in einen separaten Thread:
Java:
	class TestSWTFrame extends JFrame {
		public TestSWTFrame() {
			setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
			final Canvas canvas = new Canvas();
			setBounds(0, 0, 500, 400);
			add(canvas);
			setVisible(true);
			
			new Thread(new Runnable() {
				public void run() {
					Display display = new Display();
					Shell shell = SWT_AWT.new_Shell(display, canvas);
					shell.setSize(500, 400);
					Browser browser = new Browser(shell, SWT.NONE);
					browser.setSize(500, 400);
					browser.setUrl("http://www.google.com");
					shell.open();
					while (!shell.isDisposed() && isVisible()) {
						if (!display.readAndDispatch())
							display.sleep();
					}
					display.dispose();
					dispose();
				}
			}).start();
		}
	}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Swing Swing im Browser: ServerSideSwing AWT, Swing, JavaFX & SWT 3
H Browser in Swing AWT, Swing, JavaFX & SWT 6
M Browser in Swing App einbinden AWT, Swing, JavaFX & SWT 2
P Default Link in Swing, --> öffne Browser -> Browse URL AWT, Swing, JavaFX & SWT 8
M Gluon will JavaFX in den Browser stecken AWT, Swing, JavaFX & SWT 0
M DragAndDrop - aus Browser ins Programm AWT, Swing, JavaFX & SWT 6
A Ein browser Fenter prametrisiert öffnen AWT, Swing, JavaFX & SWT 15
K javafx app > "run in browser" funktioniert nicht AWT, Swing, JavaFX & SWT 3
llabusch JavaFX Dynamisch alles vergrößern (wie im Browser) AWT, Swing, JavaFX & SWT 3
P JavaFX Project im Browser öffnen AWT, Swing, JavaFX & SWT 4
C Applet Applet funktioniert in Eclipse aber nicht in Browser AWT, Swing, JavaFX & SWT 1
H swt browser disable navigation AWT, Swing, JavaFX & SWT 4
H RCP(SWT) Browser-Widget zeigt keine locale HTML-Dateien an AWT, Swing, JavaFX & SWT 1
VfL_Freak AWT Browser öffnen und schließen via java.awt.Desktop AWT, Swing, JavaFX & SWT 4
achillesat SWT Browser öffnen durch Button click AWT, Swing, JavaFX & SWT 5
M SWT Browser nur eine Seite erlauben AWT, Swing, JavaFX & SWT 3
P JApplet verhält sich im Browser anders als im Eclipse (AppletViewer) AWT, Swing, JavaFX & SWT 3
P JApplet Browser Tab Öffnen AWT, Swing, JavaFX & SWT 5
C html browser in Application nutzen AWT, Swing, JavaFX & SWT 10
S SWT Anzeigen einer lokalen HTML-Seite im Browser Widget über RAP nicht möglich AWT, Swing, JavaFX & SWT 3
K JTable im Browser nicht zu sehen - Applet AWT, Swing, JavaFX & SWT 6
F Browser drawString AWT, Swing, JavaFX & SWT 4
M Browser in Programm einbinden AWT, Swing, JavaFX & SWT 4
Z Component für File-Browser ähnliche Oberfläche AWT, Swing, JavaFX & SWT 6
V Applet .JAR in Browser einbinden AWT, Swing, JavaFX & SWT 2
C Swing Verlinken auf externe Prozesse bsp. Mailprogramm, Inet. Browser AWT, Swing, JavaFX & SWT 6
H Applet JApplet soll neues Tab im Browser öffnen AWT, Swing, JavaFX & SWT 2
H Applet - Hilfedateien im Browser öffnen / eine Webseite laden AWT, Swing, JavaFX & SWT 6
D JApplet hängt im Browser fest AWT, Swing, JavaFX & SWT 5
algorismi Browser Komponente AWT, Swing, JavaFX & SWT 3
F Java Browser für 1.6 AWT, Swing, JavaFX & SWT 2
J Jigloo browser tutorial - Anleitung unklar AWT, Swing, JavaFX & SWT 4
C SWT SWT Browser anzeige bug AWT, Swing, JavaFX & SWT 3
P SWT Browser-Widget und Zwischenablage bzw. Strg+C AWT, Swing, JavaFX & SWT 5
R JApplet - Infos ueber Browser moeglich? AWT, Swing, JavaFX & SWT 5
B SWT Browser mit Proxy? AWT, Swing, JavaFX & SWT 2
T [Applet] startet in Eclipse aber nicht im Browser AWT, Swing, JavaFX & SWT 2
S Browser ohne Header öffnen AWT, Swing, JavaFX & SWT 3
G Datei-Browser - Wie solche Ansicht erzeugen? AWT, Swing, JavaFX & SWT 3
U RCP und browser unabhängigkeit AWT, Swing, JavaFX & SWT 7
B Alle URLs aller offenen Browser. AWT, Swing, JavaFX & SWT 12
D Browser -> Hintergrundfarbe AWT, Swing, JavaFX & SWT 11
D JDIC Browser in SWT/JFace Anwendung nutzen AWT, Swing, JavaFX & SWT 2
I SWT - Browser.setUrl(url) geht nicht :-( AWT, Swing, JavaFX & SWT 6
M JRE-Version für Browser-Plugin wählen AWT, Swing, JavaFX & SWT 2
J Java-Eingabefeld wie in einem Browser AWT, Swing, JavaFX & SWT 8
K Datei Browser - HTML - JSP ? AWT, Swing, JavaFX & SWT 9
N Browser - Button erstellen AWT, Swing, JavaFX & SWT 2
B Datei Browser integriert in eine GUI AWT, Swing, JavaFX & SWT 5
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
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
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
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
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
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
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
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
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
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

Ähnliche Java Themen

Neue Themen


Oben