Avatar billede vels Nybegynder
28. september 2006 - 10:56 Der er 6 kommentarer og
2 løsninger

diverse java spørgsmål

Hej

Har lidt spørgsmål:

1. En JComboBox, kan man ikke gøre som i HTML, hvor man viser noget i combobox'en til brugeren f.eks. "Hus", og bruger værdien "1" i koden?

2. Jeg har en Iterator med noget data i. Iteratoren indholder nogle typer f.eks. dør, dør, vindue, dør, mursten, vindue, tagsten. Hvordan laver jeg nemmest en funktion der giver mig en liste med de forskellige typer altså: dør, vindue,mursten, tagsten?

3. Nogle der har et eksempel på hvordan man kobler et Swing textarea (JTextArea) sammen med en scroll bar (JScrollBar) ?
Avatar billede mikkelbm Nybegynder
28. september 2006 - 12:12 #1
1)
I Java bruger du objekter. Men du kan også bruge indeks:
DitObjekt objekt = (DitObjekt)combo.getSelectedItem();
int index = combo.getSelectedIndex();

2)
public Collection convert (Iterator iter)
{
  ArrayList list = new ArrayList ();
  while (iter.hasNext())
      list.add (iter.next());
}


3)

Du laver en JScrollPane og putter dit textarea ind i den. Og i stedet for at tilføje dit textarea til noget, så tilføjer du din scrollpane:

JScrollPane scroller = new JScrollPane (textarea);
panel.add (scroller, BorderLayout.CENTER);
Avatar billede hacked Nybegynder
30. september 2006 - 06:17 #2
1. Hvis du ikke vil koncentrere dig om på hvilken plads dine objekter er placeret i din combobox's arraylist, så ville jeg foretrække at have den prædefinerede værdi i objektet.

Eks:
public class Type {
  private int vaerdi;
  private string type;

  public Type(int vaerdi, string type ) {
    this.vaerdi = vaerdi;
    this.type = type;
  }
  get....
  set....

}

Du kan også bruge JCombobox.insertItemAt(Object anObject, int index). Hvorefter du kan benytte mikkelbm's 1.
Derudover kan du benytte din toString i objektet til, at specificere hvad der skal stå i JCombobox.

2. Er lidt i tvivl om hvad du vil have. Hvis det blot er en liste over alle typer så er mikkelbm's 2 svaret. Hvis du vil have dem hver for sig må du fortælle lidt mere om din opbygning.

Mindre rettelser / Du kan også returnere Collection/List ect.
Personlig foretrækker jeg dog, at returnere det samme tilbage som typen og dermed ikke interfaces typen implementere :)

public ArrayList convert(Iterator iter)
{
  ArrayList list = new ArrayList ();
  while (iter.hasNext())
    list.add (iter.next());
  return list;
}

3. Er der svaret på.
Avatar billede mikkelbm Nybegynder
30. september 2006 - 09:18 #3
>> malkor

Jeg har meget svært ved at se hvor dine svar afviger fra mine :)
Avatar billede hacked Nybegynder
30. september 2006 - 12:40 #4
return list; ;)
Avatar billede hacked Nybegynder
30. september 2006 - 12:56 #5
Ved 1'eren påpeger jeg, at det er en god ide, at rækkefølgen er konstant, såfremt brugeren vil benytte din metode. Derudover skriver jeg, hvordan han kan specificere rækkefølgen i JCombobox's arraylist, så objekterne ikke kommer til, at ligge tilfældigt, såfremt der sker ænderinger(fjernes/tilføjes objekter).
return list; <- i 2. Derudover er jeg personlig i tvivl om, hvad brugeren ønsker i 2eren. For mig at se kan 2eren tolkes på flere måder.
3. Er der svaret på.
Ps. Jeg lægger altid et svar så kan han/hun tage stilling til om han/hun fandt mine informationer nyttige eller ej.
Avatar billede mikkelbm Nybegynder
30. september 2006 - 13:07 #6
Hvis du nærlæser min 1'er igen, så vil du se at jeg foreslår objekter, men at muligheden for at hente på index eksisterer.

Og i 2'eren vil jeg til hver en tid foretrække at returnere superklasse eller interface - rent designmæssigt mener jeg at dette er det pæneste. Alternativt vil jeg returnere et array af den ønskede type objekter og ikke en collection.


"Ps. Jeg lægger altid et svar så kan han/hun tage stilling til om han/hun fandt mine informationer nyttige eller ej."

Det er også helt iorden, hvis det svar så afviger fra det der allerede er svaret på :)
Avatar billede hacked Nybegynder
30. september 2006 - 20:35 #7
I Java bruger du objekter <- Det har da intet at gøre med det jeg skriver. Jeg skriver at han skal lægge værdien som en instansvariabel i objektet.
Efter min mening afviger det nok til, at jeg har lov til at nævne det. Anyway - nok diskussion vil ikke kommentere mere på det fra nu af.
Avatar billede mikkelbm Nybegynder
27. januar 2007 - 17:03 #8
Lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester