Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.
  • "postpilzkopf" started this thread

Posts: 52

Date of registration: Apr 29th 2005

1

Wednesday, June 22nd 2005, 2:09pm

smartsoft_re package einbinden

tach, kann mir jemand sagen wie ich das package einbinde, also wohin ich smartsoft_re kopieren muss und was ich an den anfang einer neuen klasse schreiben muss ( com.smartsoft.swing)!
i feel the fungus in me growing

NineT6

Praktikant

  • "NineT6" is male

Posts: 9

Date of registration: Oct 27th 2004

2

Wednesday, June 22nd 2005, 2:23pm

RE: smartsoft_re package einbinden

also falls du den JavaEditor benutzt, dann klick auf "fenster" dann "konfiguration" dann "Interpreter" und bei "Classpath-User" kommt der Ort der smartsoft_re.jar rein, dann kannste compilieren.
denk mal, dass das in andrern Editoren ähnlich funktioniert...

mfg
"Von allen Dingen die mir verloren gegangen, hab ich am meisten an meinem Verstand gehangen" 8)

  • "postpilzkopf" started this thread

Posts: 52

Date of registration: Apr 29th 2005

3

Wednesday, June 22nd 2005, 2:53pm

jupp funzunukelt

danke
i feel the fungus in me growing

ktm

Erfahrener Schreiberling

4

Thursday, June 23rd 2005, 12:08am

und was machen die commandline-junkies? habs bisher nur zum laufen bekommen, indem ich das ganze dekompiliert und jedesmal mit in den projektordner kopiert hab... (wer dasselbe problem, aber keine lösung hat: so läuft's bei mir - http://junk.paulm.com/java_smurfsoft_package.tar) - aber das wird ja nicht ernsthaft so gedacht sein, oder?

btw, ich hab die komplette übung in delphi (und das hab ich vorher noch nie benutzt!) schneller hinbekommen, als ich inzwischen alleine auf diese package-install verschwendet hab!

This post has been edited 1 times, last edit by "ktm" (Jun 23rd 2005, 12:10am)


oixio

Senior Schreiberling

  • "oixio" is male

Posts: 517

Date of registration: Oct 3rd 2004

5

Thursday, June 23rd 2005, 12:05pm

Quoted

Original von ktm
und was machen die commandline-junkies?


Also wenn ich mich recht entsinne, ist das im Script gezeigt, wie man den Pfad zu dem Package mit angeben muss (und zwar beim Compilieren und ausführen), das hatte er doch in der Vorlesung gezeigt.
Ansonsten versuch das doch ohne sein Package zu machen. Alles was sein Package macht, ist den Zugriff auf die Swing-Classen etwas zu vereinfachen. Ich für meinen Teil werd versuchen das auch ohne hinzubekommen, sonst werd ich das in Zukunft ohne sein Package gar nicht können und drauf angewiesen sein....

oixio
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!

This post has been edited 1 times, last edit by "oixio" (Jun 23rd 2005, 12:06pm)


ktm

Erfahrener Schreiberling

6

Thursday, June 23rd 2005, 1:51pm

Quoted

Original von oixio
Also wenn ich mich recht entsinne, ist das im Script gezeigt, wie man den Pfad zu dem Package mit angeben muss (und zwar beim Compilieren und ausführen), das hatte er doch in der Vorlesung gezeigt.

thx, da hab ich wohl das script etwas zu schnell überflogen...

Quoted

Original von oixioAnsonsten versuch das doch ohne sein Package zu machen. Alles was sein Package macht, ist den Zugriff auf die Swing-Classen etwas zu vereinfachen.

ist mir auch schon in den sinn gekommen (der quelltext sieht ja extrem simpel aus). leider hab ich grad n brett vorm kopf, egal ob mit oder ohne package ;(

ktm

Erfahrener Schreiberling

7

Thursday, June 23rd 2005, 5:37pm

liegt das an mir, oder gibt es tatsächlich keine möglichkeit, die bedienelemente zu *platzieren*? bei mir landen zahl/basis/ergebnis nämlich, alle mit denselben ausmassen (das ist das nächste problem!), direkt übereinander (überlagernd, nicht vertikal aufgereiht). ist auf die art etwas schwer zu bedienen, das ganze ;)

edit: hat sich erledigt, dafür schmeissen jetzt die action events massiv mit null pointer exceptions um sich :(
und die "-cp"-optionen wollen weder der compiler noch der interpreter fressen, aber solang es auf meinem "alten" weg geht, ist das egal

edit2: wie krieg ich raus, wer das actionevent ausgelöst hat? ich hab nur zwei entsprechende objekte, aber irgendwie wollen's beide nicht gewesen sein, wenn ich beide möglichkeiten per if-clause überprüfe...

This post has been edited 2 times, last edit by "ktm" (Jun 23rd 2005, 6:49pm)


oixio

Senior Schreiberling

  • "oixio" is male

Posts: 517

Date of registration: Oct 3rd 2004

8

Thursday, June 23rd 2005, 8:56pm

Quoted

Original von ktm
wie krieg ich raus, wer das actionevent ausgelöst hat?


Also uns würde es zur Fehlersuche weiterhelfen, wenn du deinen entsprechenden Code-Abschnitt mitgepostet hättest, dann könnt man evtl den Fehler finden.

Ansonsten schau dir doch nochmal seine Beispiele an (hier mal ein Auszug, wie das jetzt bei mir ist und funktioniert: )

Source code

1
2
3
4
5
6
7
8
9
public void actionPerformed(ActionEvent ae) {
    Object source = ae.getSource();
    if ( source == XXYYZZ ) {
      doActionForXXYYZZ();
    }
    else if (source == AABBCC){
      doActionForXXYYZZ();
    }
}

und so weiter. Vorraussetzung ist, das du den Elementen die Klasse (this) als ActionListener angefügt hast. Wie das geht kann man auch in seinen Beispielen sehen.

ich hoffe das hilft weiter,

oixio

PS: XXYYZZ bzw AABBCC sind natürlich die Variablennamen der Objekte. Wenn dein Textfeld zB Textfeld1 heißt dann muss da statt XXYYZZ natürlich Textfeld1 stehen.
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!

ktm

Erfahrener Schreiberling

9

Friday, June 24th 2005, 12:09am

ziemlich genau so stehts bei mir im code. hab inzwischen auch rausgefunden, dass die combobox sich korrekt meldet, aber das integerfield besteht auf anonymität :/
und getNumber/setNumber etc (je nachdem was das entspr. objekt eigentlich können müsste auf die diversen objekte führt nur zu den bereits erwähnten exceptions...

gui-generierung (auszug):

Source code

1
2
3
4
5
IntegerField iField=new IntegerField(20);
iField.setNumber(0); // jaja, doppelt gemoppelt, da default...
iField.setRadix(10); // dito
iField.addActionListener(this);
iPanel.add(iField);


event-handler:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void actionPerformed(ActionEvent ae) {
	Object source=ae.getSource();
	String radixString;
	int radix;

        System.out.print("Action Command: "+ae.getActionCommand()+"\n");// debug
        System.out.print("Parameters:     "+ae.paramString()+"\n");     // debug
        System.out.print("AE String:      "+ae.toString()+"\n");        // debug

	if ( source == iField ) {
                System.out.print("Source: iField\n\n");                 // debug
                iField.setNumber(iField.getNumber());
                oField.setNumber(iField.getNumber());
        }
	else if ( source == bBox ) {
		radixString=(String)bBox.getSelectedItem();
                System.out.print("Source: bBox\n");                     // debug
                System.out.print("Selected: "+radixString+"\n\n");      // debug
                (...)
        }
	else {
                System.out.print("Source: <unknown>\n\n");              // debug
        }
}

wie gesagt: der bBox-zweig (basis/radix) wird erreicht, der iField-zweig (zahl) davor nie. addActionListener()s sind bei beiden gesetzt.
und hier noch, falls damit irgendjemand was anfangen kann (ich jedenfalls nicht viel), die fehlermeldung, die beim zugriff auf die iField/oField/bBox-Objekte auftritt:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at IntRadGUI.actionPerformed(IntRadGUI.java:69)
        at javax.swing.JTextField.fireActionPerformed(JTextField.java:487)
        at javax.swing.JTextField.postActionEvent(JTextField.java:668)
        at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:783)
        at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1571)
        at javax.swing.JComponent.processKeyBinding(JComponent.java:2730)
        at javax.swing.JComponent.processKeyBindings(JComponent.java:2765)
        at javax.swing.JComponent.processKeyEvent(JComponent.java:2693)
        at java.awt.Component.processEvent(Component.java:5265)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3955)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810)
        at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:668)
        at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:916)
        at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:794)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:632)
        at java.awt.Component.dispatchEventImpl(Component.java:3841)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Window.dispatchEventImpl(Window.java:1766)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
so, ich hoffe das ist genug text für euch :D

This post has been edited 3 times, last edit by "ktm" (Jun 24th 2005, 1:32am)


6oeser6u6e

Junior Schreiberling

  • "6oeser6u6e" is male

Posts: 217

Date of registration: Mar 10th 2004

Location: Wolfsburg; Wohnort: Hannover-Nordstadt

Occupation: um Abstand zu der dämlichen Masse zu gewinnen... naja und wegen Geld ;P

10

Friday, June 24th 2005, 11:35am

also ohne zu wissen welche Zeile 69 in deinem Code ist es schon mal nicht ganz leicht zu sagen was da schief läuft, aber ich tippe mal darauf, dass irgendein Feld keinen wert enthält, also null und das deswegen eine NullPointerException geworfen wird... ist aber auch nur ne Vermutung wie gesagt...
und den sinn von Zeile 12 vom event-handler hab ich auch noch nicht ganz verstanden...
Unwissenheit ist ein Segen

ktm

Erfahrener Schreiberling

11

Friday, June 24th 2005, 12:35pm

zum nullpointer: kommt vom "iField"-IntegerField; ist mit "0" (also nicht leer) initialisiert (siehe oben), und der ae wurde ausgelöst, als ich ne andere zahl eingegeben habe. da ich damit nicht rechne, müsste er mir eigentlich nur den integer "0" ausspucken und fertig -> null plan wo genau da der fehler sein soll. sieht eigentlich alles so aus wie in Beispiele16-5/NumberFields/NumberFieldGUI.java.

und zu zeile 12: stand so in obigem beispielprogramm; ist mir auch schleierhaft was das sollte, aber momentan bin ich verzweifelt genug, selbst so nen scheiss auszuprobieren.
edit: hab eben nochmal ins bsp reingeschaut, in dem fall macht's sinn weil das eingabe- zugleich auch als ausgabefeld genutzt wird. bei mir isses einfach nur überflüssiger schrott, aber es schadet zumindest nicht :]

so langsam kommt mir der verdacht, das es mal wieder an meinem rechner liegt - wie gesagt, mit der package im originalen, kompilierten zustand ist bei mir nix zu wollen, und "de_DE"-locales liefen damals auch nicht, hab ich dann einfach mit "en_US" gemacht, vor'm abschicken "blind" geändert und siehe da, inner uni lief es dann überraschenderweise. werd ich wohl diesmal wieder so machen müssen... :(

This post has been edited 1 times, last edit by "ktm" (Jun 24th 2005, 12:39pm)


Shadow

... mit bunten Sternchen und so

  • "Shadow" is male

Posts: 838

Date of registration: Dec 21st 2001

Location: Hamburg

12

Friday, June 24th 2005, 12:38pm

Auch wenn man die Übung natürlich mit purem Swing, ohne das Smartsoft-Package lösen kann, empfehle ich euch, es zu verwenden! Das spart Stunden. ;-)

Jens
"Man hält die Erzeugung von Information für ein Zeichen von Intelligenz, während in Wirklichkeit das Gegenteil richtig ist: Die Reduktion, die Auswahl der Information ist die viel höhere Leistung."
-- Heinz Zemanek

Reverend DOOM

Praktikant

Posts: 6

Date of registration: Nov 26th 2002

13

Friday, June 24th 2005, 12:43pm

Moin

Hatte den gleichen Fehler auch erst...

iField muss global mit "private IntegerField iField" definiert werden
(hast Du bestimmt schon gemacht),

dann muss jedoch das erste "IntegerField" aus der Zeile
IntegerField iField=new IntegerField(20);
entfernt werden,
sonst existiert diese Instanz von iField nur innerhalb der Methode...
der Event-Handler versucht dann auf das (leere) globale iField zuzugreifen
--> NullPointerException

korrigiert mich wenn ich falsch liege,
bei mir hat es so jedenfalls geklappt.

DOOM

This post has been edited 1 times, last edit by "Reverend DOOM" (Jun 24th 2005, 12:55pm)


ktm

Erfahrener Schreiberling

14

Friday, June 24th 2005, 1:26pm

klasse, das war's! danke! :D

nur so als randnotiz, IntegerFields werden doch eigentlich per default mit "0" als zahlenwert erstellt (also nicht leer/"null"), also dürfte selbst das globale i.f. keine nullpointerprobleme machen (auch wenn dann natürlich das programm nicht so funzt, wie erwartet)!?

Reverend DOOM

Praktikant

Posts: 6

Date of registration: Nov 26th 2002

15

Friday, June 24th 2005, 1:35pm

Die Instanz vom IntegerField wird ja erst mit new IntegerField() erzeugt
(und nicht bei der Definition oben), also wird auch dann erst der Wert 0 zugewiesen.

oixio

Senior Schreiberling

  • "oixio" is male

Posts: 517

Date of registration: Oct 3rd 2004

16

Friday, June 24th 2005, 4:00pm

Quoted

Original von Shadow
Auch wenn man die Übung natürlich mit purem Swing, ohne das Smartsoft-Package lösen kann, empfehle ich euch, es zu verwenden! Das spart Stunden. ;-)


Naja, ganz so viel war es bei mir nicht. Dafür ist man unabhängig von dem Package, falls man später das nochmal für was anderes braucht, hat man es gleich "richtig" gemacht.

Achja, hat schonmal wer auf http://www.smartsoft.com nachgesehen? Ist ja sehr glücklich gewählt der Name von dem Package.....


oixio
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!

q_2

Junior Schreiberling

Posts: 134

Date of registration: Oct 25th 2004

17

Friday, June 24th 2005, 8:23pm

Also eigentlich komme ich auf einen Unterschied von
mit Smartsoft versus nur Swing
auf läppische 5 Zeilen mehr bei letzterem...
1001 PHP-Klickibunti-made-by-Script-kiddies-Foren sind nicht nur Qual sondern auch Rückschritt!

ktm

Erfahrener Schreiberling

18

Saturday, June 25th 2005, 12:58am

Quoted

Original von oixio
Achja, hat schonmal wer auf http://www.smartsoft.com nachgesehen? Ist ja sehr glücklich gewählt der Name von dem Package..

es gibt (mindestens) noch eine weitere smartsoft-firma, die dann sogar java-kurse anbietet :D hat allerdings genausowenig mit unserer package zu tun wie die von deiner addresse da.

oixio

Senior Schreiberling

  • "oixio" is male

Posts: 517

Date of registration: Oct 3rd 2004

19

Saturday, June 25th 2005, 10:38am

Quoted

Original von ktm
hat allerdings genausowenig mit unserer package zu tun wie die von deiner addresse da.

Wenn ich mich aber richtig an seine Vorlesung erinnere, dann sollte die Namensgebung eine Package doch von einer Domain abgeleitet sein, die dann umgedreht hingeschrieben wird, also erst com, dann Punkt, dann der Domainnamen. Das soll ja dazu dienen, dass keine Namenskonflikte auftreten. Das die Seite wenig mit unserem Package zu tun hat ist mir klar, aber es ist halt die Domein, die zu dem Package-Namen gehört, oder etwa nicht?
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!

SethGecco

Junior Schreiberling

  • "SethGecco" is male

Posts: 210

Date of registration: Nov 13th 2003

Location: Hannover

Occupation: Informatik/ 5.

20

Saturday, June 25th 2005, 1:46pm

Irgendwie funktioniert das Beispiel "NumberField" bei mir nicht. Es wird immer der folgende Fehler ausgegeben, woran liegt denn das?
Dabei habe ich den Code einfach von der Seite übernommen. Muss ich noch Package extra laden oder liegt es an den Einstellungen, falls vorausgesetzt wird, dass auf ein Package zugegriffen wird.

Quoted

.\NumberFieldGUI.java:20: cannot find symbol
symbol : class ByteField
location: class NumberFieldGUI
private ByteField byteField;
^
.\NumberFieldGUI.java:22: cannot find symbol
symbol : class ShortField
location: class NumberFieldGUI
private ShortField shortField;
^
.\NumberFieldGUI.java:26: cannot find symbol
symbol : class LongField
location: class NumberFieldGUI
private LongField longField;
^
.\NumberFieldGUI.java:28: cannot find symbol
symbol : class FloatField
location: class NumberFieldGUI
private FloatField floatField;
^
.\NumberFieldGUI.java:87: cannot find symbol
symbol : class ByteField
location: class NumberFieldGUI
byteField = new ByteField(20);
^
.\NumberFieldGUI.java:96: cannot find symbol
symbol : class ShortField
location: class NumberFieldGUI
shortField = new ShortField(20);
^
.\NumberFieldGUI.java:114: cannot find symbol
symbol : class LongField
location: class NumberFieldGUI
longField = new LongField(20);
^
.\NumberFieldGUI.java:123: cannot find symbol
symbol : class FloatField
location: class NumberFieldGUI
floatField = new FloatField(20);
^