/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
String i kommando
Fra : Jens


Dato : 29-04-01 12:53

Hej (igen:)

er dette muligt?

String kt = new String("jtfk");
kt.setText("");

//hvor jtfk er navnet på et JTextfield



 
 
Ulrik Magnusson (29-04-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 29-04-01 13:09

Jens wrote:

> er dette muligt?
> String kt = new String("jtfk");
> kt.setText("");
> //hvor jtfk er navnet på et JTextfield

Her er det vist nemmest at bruge Hashtable (du kunne også bruge
reflection):

java.awt.TextField tf = new java.awt.TextField("yadayada");
java.util.Hashtable table = new java.util.Hashtable();
table.put( "tf", tf );//associér "tf" med tf
....
// hent tf med dens navn - "tf" og kald setText() på tf.
// java.util.Hashtable returnerer Object, så den skal konverteres:
((java.awt.TextField)table.get("tf")).setText("");

(NB! du kan ikke bruge java.awt.TextField metoder på String -
kt.setText(""); duer ikke, hvis kt er en String)

Ulrik Magnusson

--
"Look! Ducks in the lake"
'Agent Cooper' in Twin Peaks - Lynch, 1990
Visit my home page: http://www.geocities.com/ulrikm



Jens (30-04-2001)
Kommentar
Fra : Jens


Dato : 30-04-01 11:23

Hej og tusind tak for hjælpen
Men det var ikke helt nok
ohh, jeg fatter heller aldrig o en ski' :)

her et udklip fra den kode jeg sidder med:
for(i = 0; i<kn.length; i++)
{
sql = "SELECT "+kn[i]+" FROM "+tn+" WHERE "+koln+"='"+nr+"';";
con.query(sql, kolonner, raekker);
temp = raekker.elementAt(i).toString();
temp = temp.substring(1,temp.length()-1);
temp1 = tf[i];
table.put("temp1",temp1);
((javax.swing.JTextField)table.get("temp1")).setText(temp);
----
hvor "kn" et string array (String[])
"con.query", er en forespørgsel til en sql database
Nå, det jeg henter ud i "temp" er hvad der skal stå i JTextfieldet, og
"temp1" er navnet på JTextfieldet hvor det skal stå. Jeg kan også kompilere
det men når jeg udfører det får jeg en små 50 linier med skumle fejlkoder i
konsol vinduet :(

Håber du eller en anden gider/kan se hvad jeg gør forkert og fortælle mig
det.

På forhånd mange tak

-Jens



Soren 'Disky' Reinke (30-04-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 30-04-01 11:58


"Jens" <deterikkemin@email.dk> wrote in message
news:9cjekc$chs$1@sunsite.dk...
> Hej og tusind tak for hjælpen
> Men det var ikke helt nok
> ohh, jeg fatter heller aldrig o en ski' :)
> Nå, det jeg henter ud i "temp" er hvad der skal stå i JTextfieldet, og
> "temp1" er navnet på JTextfieldet hvor det skal stå. Jeg kan også
kompilere
> det men når jeg udfører det får jeg en små 50 linier med skumle fejlkoder
i
> konsol vinduet :(

Hvilke fejlmeddelelser for du ?

p.s. brug et udviklingsmiljø så er det langt nemmere at finde fejl.

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Jens (30-04-2001)
Kommentar
Fra : Jens


Dato : 30-04-01 12:19

Du spurgte selv :) :


java.lang.ClassCastException: java.lang.String
at Combox.ComboValg(GSAMS.java:456)
at KundeNedlag$1.itemStateChanged(GSAMS.java:1050)
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:846)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:891)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:946)
at
javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:79)
at
javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel.java:8
6)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:415)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:455)
at
javax.swing.plaf.basic.BasicComboPopup$ListMouseHandler.mouseReleased(BasicC
omboPopup.java:582)
at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:3717)
at java.awt.Component.processEvent(Component.java:3546)
at java.awt.Container.processEvent(Container.java:1164)
at java.awt.Component.dispatchEventImpl(Component.java:2595)
at java.awt.Container.dispatchEventImpl(Container.java:1213)
at java.awt.Component.dispatchEvent(Component.java:2499)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
at java.awt.Container.dispatchEventImpl(Container.java:1200)
at java.awt.Window.dispatchEventImpl(Window.java:912)
at java.awt.Component.dispatchEvent(Component.java:2499)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
at
java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)


Håber det kan hjælpe

Mvh

-Jens



Soren 'Disky' Reinke (30-04-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 30-04-01 12:45


"Jens" <deterikkemin@email.dk> wrote in message
news:9cjhvt$qji$1@sunsite.dk...
> Du spurgte selv :) :
>
<klip>
>
>
> Håber det kan hjælpe

Det er svært at sige, men lige umiddelbart ser det ud som om du forsøger at
caste noget til en String, og det går ikke med det du vil caste.

Forsøger du evt. at caste et resultset eller lignende til en string ?

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Jens (30-04-2001)
Kommentar
Fra : Jens


Dato : 30-04-01 16:23

> Forsøger du evt. at caste et resultset eller lignende til en string ?

Nej, jeg vil have en string til at "agere" JTextfield se evt. mit svar til
Ulrik.
"enstring".setText("");

Takker for hjælpen!

-Jens



Ulrik Magnusson (30-04-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 30-04-01 12:44

Jens wrote:

> java.lang.ClassCastException: java.lang.String
> at Combox.ComboValg(GSAMS.java:456)

Du prøver at konvertere et String objekt til noget andet. Vi må hellere
se linie 456 i GSAMS.java

Ulrik Magnusson


--
DEUTSCH: You two have some sick sex thing?
BARTON: Sex?! He's a MAN! We WRESTLED!
Barton Fink - Joel and Ethan Coen, 1991
Visit my home page: http://www.geocities.com/ulrikm



Jens (30-04-2001)
Kommentar
Fra : Jens


Dato : 30-04-01 14:52

> Du prøver at konvertere et String objekt til noget andet. Vi må hellere
> se linie 456 i GSAMS.java

Linie 456: ((javax.swing.JTextField)table.get("temp1")).setText("");

hele metoden bliver kaldt når man vælger noget fra en en combobox:
kaldet:
public void itemStateChanged(ItemEvent e)
{
i = KNrBox.getSelectedIndex();
nr = KNrBox.getItemAt(i).toString();

comb.ComboValg("KUNDER", "KUNDENR", kn, tf, nr);
}
---
metoden:

public void ComboValg(String tn, String koln, String[] kn, String[] tf,
String nr)
{
raekker.removeAllElements();
kolonner.removeAllElements();
con = new SQLCon("jdbc:interbase://127.0.0.1/c:\\gs\\gsams.gdb",
"SYSDBA", "masterkey");
if(con.connect())
System.out.println("Der er fobindelse");
else
System.out.println("Der er IKKE forbindelse");

for(i = 0; i<kn.length; i++)
{
sql = "SELECT "+kn[i]+" FROM "+tn+" WHERE "+koln+"='"+nr+"';";
con.query(sql, kolonner, raekker);
temp = raekker.elementAt(i).toString();
temp = temp.substring(1,temp.length()-1);
temp1 = tf[i];
table.put("temp1",temp1);
((javax.swing.JTextField)table.get("temp1")).setText(""); <---
LINIE 456
}
}

Jeg takker virkelig mange gange for at i gide hjælpe !!

MVH

-Jens



Ulrik Magnusson (30-04-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 30-04-01 15:48

Jens wrote:

> Linie 456: ((javax.swing.JTextField)table.get("temp1")).setText("");

> public void ComboValg(String tn, String koln, String[] kn, String[] tf,
> String nr)

Hov - jeg troede "tf" var en javax.swing.JTextField[] - det skal den være.
Ellers er det jo dette:

String[] tf = {"dav"};
table.put( "dav", tf[0] );// associerer "dav" med "dav"
Object obj = table.get( "dav" );// obj er String objektet "dav"
javax.swing.JTextField tf1 = (javax.swing.JTextField)obj;//ikke godt

Ulrik Magnusson

--
DEUTSCH: You two have some sick sex thing?
BARTON: Sex?! He's a MAN! We WRESTLED!
Barton Fink - Joel and Ethan Coen, 1991
Visit my home page: http://www.geocities.com/ulrikm



Jens (30-04-2001)
Kommentar
Fra : Jens


Dato : 30-04-01 16:11


> javax.swing.JTextField tf1 = (javax.swing.JTextField)obj;//ikke godt

Dvs at det ikke kan lade sig gøre?
Altså at tage et string array hvor indholdet i dette string array er navnene
på JTextfields der er oprettet og sat på en JPanel og sige:
--
String[] tf={"KNavnTxt", "KAdrTxt", "KPostNrTxt", "KTlfTxt", "KEmailTxt"};

for(int i = 0; i<tf.length; i++)
{
tf[i].setText("");
}
--
Eller misforstod jeg dit svar, i så faldt må du undskylde, men jeg har
aldrig arbejdet med hashtables før.
Men ihvertfald skal du/i have mange tak for jeres hjælp!

Mvh

-Jens



Ulrik Magnusson (30-04-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 30-04-01 16:24

Jens wrote:

> > javax.swing.JTextField tf1 = (javax.swing.JTextField)obj;//ikke godt
>
> Dvs at det ikke kan lade sig gøre?
> Altså at tage et string array hvor indholdet i dette string array er navnene
> på JTextfields der er oprettet og sat på en JPanel og sige:

Jo, hvis du associerer String objekter med JTextfield objekter
i en Hashtable:

class T
{
TextField f1 = new TextField();
java.util.Hashtable table = new java.util.Hashtable();

T()
{
table.put( "f1", f1 );
}

somethingHappened( String textFieldName )//fx somethingHappened("tf")
{
((TextField)table.get(textFieldName)).setText("Something happened");
}
}

Ulrik Magnusson


--
DEUTSCH: You two have some sick sex thing?
BARTON: Sex?! He's a MAN! We WRESTLED!
Barton Fink - Joel and Ethan Coen, 1991
Visit my home page: http://www.geocities.com/ulrikm



Jens (30-04-2001)
Kommentar
Fra : Jens


Dato : 30-04-01 17:00

Hvis jeg gør som du siger:

String[] tf={"KNavnTxt", "KAdrTxt", "KPostNrTxt", "KTlfTxt", "KEmailTxt"};
!kaldet kommer med de medfølgende parameter!

class T
{
public void T(String[] tf)
{
for(i = 0; i<tf.length; i++)
{
temp1 = tf[i];
JTextField f1 = new JTextField();
java.util.Hashtable table = new java.util.Hashtable();
table.put("f1",f1);
((JTextField)table.get(temp1)).setText("gg");
}
}
}

Får jeg en null point exception :(
Håber du kan bære over med mig !

Men endnu engang tak for hjælpen

-Jens



Ulrik Magnusson (30-04-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 30-04-01 17:42

Jens wrote:

> Hvis jeg gør som du siger:
>
> String[] tf={"KNavnTxt", "KAdrTxt", "KPostNrTxt", "KTlfTxt", "KEmailTxt"};
> !kaldet kommer med de medfølgende parameter!
>
> class T
> {
> public void T(String[] tf)
> {
> for(i = 0; i<tf.length; i++)
> {
> temp1 = tf[i];
> JTextField f1 = new JTextField();
> java.util.Hashtable table = new java.util.Hashtable();
> table.put("f1",f1);
> ((JTextField)table.get(temp1)).setText("gg");
> }
> }
> }
>
> Får jeg en null point exception :(

Det er fordi der ikke er associeret noget med fx tf[0] (dvs "KNavnTxt").
Så returnerer table.get("KNavnTxt") null.

Her er en idé:

class T
{
private JTextField textFields = new JTextField[5];
private java.util.Hashtable table = new java.util.Hashtable();

T()
{
//associér "KNavnTxt" med tf[0] etc:
table.put( "KNavnTxt", tf[0] );
table.put( "KAdrTxt", tf[1] );
table.put( "KPostNrTxt", tf[2] );
table.put( "KTlfTxt", tf[3] );
table.put( "KEmailTxt", tf[4] );
}

public void t( String[] tf )
{
for( int i = 0; i < tf.length; i++)
{
Object obj = table.get( tf[i] );
if( obj == null )
{
// ingen associering mellem tf[i] og et JTextField objekt
// - en eller anden form for fejlhåndtering
}
else
{
((JTextField)obj).setText("gg");
}
}
}
}

Det er dog lidt spooky, og jeg kan ikke helt se, hvor du vil hen med det.
Fx hvorfra ved andre (dem, der kalder t() metoden), at der overhovedet
eksisterer et JTextField, der er associeret med fx "KNavnTxt"?

Ulrik Magnusson


--
DEUTSCH: You two have some sick sex thing?
BARTON: Sex?! He's a MAN! We WRESTLED!
Barton Fink - Joel and Ethan Coen, 1991
Visit my home page: http://www.geocities.com/ulrikm



Ulrik Magnusson (30-04-2001)
Kommentar
Fra : Ulrik Magnusson


Dato : 30-04-01 17:59

Ulrik Magnusson wrote:

> T()
> {
> //associér "KNavnTxt" med tf[0] etc:
> table.put( "KNavnTxt", tf[0] );
> table.put( "KAdrTxt", tf[1] );
> table.put( "KPostNrTxt", tf[2] );
> table.put( "KTlfTxt", tf[3] );
> table.put( "KEmailTxt", tf[4] );
> }

hov - textfield objekterne skal lige konstrueres:

T()
{
for( int i = 0; i < textFields.length; i++ )
{
textFields[i] = new JTextField();
}
//associér "KNavnTxt" med textFields[0] etc:
table.put( "KNavnTxt", textFields[0] );
table.put( "KAdrTxt", textFields[1] );
table.put( "KPostNrTxt", textFields[2] );
table.put( "KTlfTxt", textFields[3] );
table.put( "KEmailTxt", textFields[4] );
}

Ulrik Magnusson

--
DEUTSCH: You two have some sick sex thing?
BARTON: Sex?! He's a MAN! We WRESTLED!
Barton Fink - Joel and Ethan Coen, 1991
Visit my home page: http://www.geocities.com/ulrikm





Jens (02-05-2001)
Kommentar
Fra : Jens


Dato : 02-05-01 08:51

Hej Ulrik!

Jeg ville bare lige takke dig for din hjælp det var kanon... nu funkler det
om end ikke lige på den måde du forslog, men bare det virker :)

Endnu en gang tak!

- Jens



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste