| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| | |
 | BOM Assistant für Stücklistenerstellung , eine App
|
|
Autor
|
Thema: JLink: JDialog, Swing (1374 mal gelesen)
|
s.kaiser Mitglied Associate Technologist

 Beiträge: 43 Registriert: 31.07.2007 ProE WF2 P4 3Ghz 1gb ram WinXp Java SDK1.4.2.12
|
erstellt am: 06. Aug. 2007 14:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo Community, ich versuche mich zur Zeit darin ein neues Fenster über eine JLink-Applikation zu öffnen. Das ist soweit nicht das Problem. Sobald ich jedoch versuche dieses Fenster mit Componenten(JButton, JPanel) zu füllen, wird mein Fenster beim Aufruf nicht mehr angezeigt. Irgendwie ist da grad der Wurm drin... -------------------------------------------- class GatherInputListener extends DefaultUICommandActionListener { DriverMain dm = new DriverMain(); JDialog d = new JDialog(new JFrame(), true); public void gatherInputs(Session session) { JButton b = new JButton("load"); d.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); d.add(b); d.pack(); d.setVisible(true); } public void OnCommand() { gatherInputs(dm.getSession()); } } -------------------------------------------------- Vielen Dank für die Unterstützung. Gruß [Diese Nachricht wurde von s.kaiser am 06. Aug. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JLinker Mitglied CAD Administrator / Konstrukteur

 Beiträge: 36 Registriert: 10.03.2007 ProE Wildfire 2.0 M270 /3.0 M090 Intralink 3.4 M040 PDMLink 9.0 F000<P>HP xw4400 NVIDIA QuadroFX 1500 NVIDIA Treiber 84.80 WinXP SP2
|
erstellt am: 07. Aug. 2007 06:46 <-- editieren / zitieren --> Unities abgeben:          Nur für s.kaiser
Hallo, es könnte daran liegen, dass die add Methode die du verwendest nur mit AWT funktioniert. Bei Swing Komponenten läuft es über die Methode getContentPane/setContentPane. Code:
JDialog d = new JDialog(new JFrame(), true); JPanel p = new JPanel(); JButton b = new JButton("load"); p.add(b); d.setContentPane(p); d.pack();
Oder alternativ, wenn du kein eigenes JPanel Objekt erzeugen möchtest: Code:
JDialog d = new JDialog(new JFrame(), true);
JButton b = new JButton("load"); d.getContentPane().add(b); d.setContentPane(p); d.pack();
Was man aber auf keinen Fall machen darf ist, irgendwelche Exits (z.B System.exit(0)) aus dem Java-Code aufrufen. Das beendet auch ProE. Die Zeile solltest du weglassen: Zitat:
d.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
Gruß, Günther Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.kaiser Mitglied Associate Technologist

 Beiträge: 43 Registriert: 31.07.2007 ProE WF2 P4 3Ghz 1gb ram WinXp Java SDK1.4.2.12
|
erstellt am: 07. Aug. 2007 10:29 <-- editieren / zitieren --> Unities abgeben:         
Vielen Dank für die Info Günther. Daran lag es im Endeffekt auch  . Ein weiteres Problem war auch, dass ich unter J-Link nicht sagen darf. setLayout(null). Damit verträgt sich das Programm auch nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.kaiser Mitglied Associate Technologist

 Beiträge: 43 Registriert: 31.07.2007 ProE WF2 P4 3Ghz 1gb ram WinXp Java SDK1.4.2.12
|
erstellt am: 07. Aug. 2007 12:32 <-- editieren / zitieren --> Unities abgeben:         
Noch einmal eine andere Sache: Hat hier bereits jemand Erfahrungen im Umgang mit dem Einlesen von Datenbeständen aus einer Exceltabelle in eine Java-Anwendung gemacht. Ich benutze die jexcelAPI, doch scheinen hier einige Probleme beim auslesen aufzutreten. Kann mir vielleicht jemand zu dieser Thematik wie man am besten Datenbestände aus Excel mit Java ausliest weiterhelfen? Unter Eclipse kompiliert läuft das Prog einwandfrei, sobald ich jedoch die selbe klasse in meine jlink-Applikation einbinde streikt es... Ist es vielelicht doch nicht ganz so kompatibel? Ich bin für jeden Tipp dankbar. Hier noch einmal ein Codeschnipsel: public void setWorksheet(String path) { try { Workbook workbook = Workbook.getWorkbook(new File(path)); } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Er hängt selbst schon bei der initialisierung der File auf... Vielen Dank Gruß [Diese Nachricht wurde von s.kaiser am 07. Aug. 2007 editiert.] [Diese Nachricht wurde von s.kaiser am 07. Aug. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.kaiser Mitglied Associate Technologist

 Beiträge: 43 Registriert: 31.07.2007 ProE WF2 P4 3Ghz 1gb ram WinXp Java SDK1.4.2.12
|
erstellt am: 07. Aug. 2007 13:54 <-- editieren / zitieren --> Unities abgeben:         
Also aus irgendeinem Grund kann jlink mit der library jxl.jar nichts anfangen... Bei mir treten die gleichen Symptome auf, wie in diesem Thread beschrieben: http://ww3.cad.de/foren/ubb/Forum12/HTML/012101.shtml#000003 Allerdings liegen meine libraries in verschiedenen ordner, weshalb mir die dort beschriebene Lösung nicht so recht weiterhelfen kann. Ich habe den Pfad der library meiner compile.bat hinzugefügt und er kompiliert das auch ohne probleme, aber sobald ich das Programm ausführen möchte, meldet ProE, dass die Anwendung nicht gestartet werden konnte... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JLinker Mitglied CAD Administrator / Konstrukteur

 Beiträge: 36 Registriert: 10.03.2007 ProE Wildfire 2.0 M270 /3.0 M090 Intralink 3.4 M040 PDMLink 9.0 F000<P>HP xw4400 NVIDIA QuadroFX 1500 NVIDIA Treiber 84.80 WinXP SP2
|
erstellt am: 07. Aug. 2007 14:19 <-- editieren / zitieren --> Unities abgeben:          Nur für s.kaiser
Hallo, ich hab mit der Beschreibung den Eindruck, dass die jxl.jar zur Laufzeit nicht oder nicht richtig im Classpath eingetragen ist. Öffne mal von ProE aus über Fenster > Systemfenster öffnen ein CMD Fenster und lass dir den Classpath anzeigen. Wenn die jxl.jar da richtig drin steht, sitzt das Problem tiefer. Was die Initialisierung deines Workbook betrifft stellt sich mir die Frage, mit welcher Excel Version die Datei erstellt worden ist. So weit ich weis kann man nur bis zur Version 2000 die Daten bearbeiten. Gruß, Günther Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.kaiser Mitglied Associate Technologist

 Beiträge: 43 Registriert: 31.07.2007 ProE WF2 P4 3Ghz 1gb ram WinXp Java SDK1.4.2.12
|
erstellt am: 07. Aug. 2007 14:34 <-- editieren / zitieren --> Unities abgeben:         
Naja die Kompilierung als solche funktioniert ohne Probleme. Ich habe auch schon eine einfaches Testprogramm geschrieben, was daten aus einer Exceltabelle auslesen soll und das funktioniert alles wunderbar. Wenn ich nun aber dieses Programm über einen Menüeintrag in meine ProE/Jlink anwendung einbinden möchte, kann er plötzlich die protk.dat nicht mehr richtig laden. Kommentiere ich aber die entsprechenden Zeilen aus, also getWorkbook, getCell, etc... dann kann er wieder alles ohne Probleme ausführen. Habe mal eine ne Umgebungsvariable für die jxl.jar gesetzt anstatt den Pfad über meine *.bat file einzubinden, aber das hat auch nicht geholfen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.kaiser Mitglied Associate Technologist

 Beiträge: 43 Registriert: 31.07.2007 ProE WF2 P4 3Ghz 1gb ram WinXp Java SDK1.4.2.12
|
erstellt am: 07. Aug. 2007 14:58 <-- editieren / zitieren --> Unities abgeben:         
So ich hab jetzt noch einmal etwas in Eclipse hertumgespielt und dort noch einmal alle Pfade für mich gesetzt. Und siehe da, es sind eine ganze Menge Fehlermeldungen aufgetaucht... Die version von der jexcelapi, die ich habe scheint nicht kompatible mit dem jdk1.4.2 zu sein. Weiß zufällig jemand wo ich eine ältere und hoffentlich kompatible version dieser api beziehen kann? Vielen Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |