Avatar billede simonvalter Praktikant
19. april 2003 - 00:21 Der er 11 kommentarer og
1 løsning

bookmark/site manager ..

jeg kunne godt tænke mig og se et eksempel på hvordan jeg fra gui gemmer nogen data der står i jTextField's i en liste .. feks  jList (eller noget der er bedre til formålet)

det jeg prøver at lave er noget ala en ftp client (der læser data og styrer med site commands) .. og jeg vil godt kunne bookmark sites ..

jeg har tidligere prøvet at serializere fra et jtextfield men det virkede ikke særligt smart da jeg gemte 1 fil pr jtextfield .. og det virkede kun for 1 account.

så hvis i har et eksempel på noget ligende ville det være rart at se. links er fint ..
Avatar billede trp79 Nybegynder
19. april 2003 - 08:30 #1
Hvis du nu har en klasse der beskriver hvad en bookmark, og hver gang der tilføjes en bookmark tilføjes et objekt til en dynamisk JList. Du kan så serialisere JList objektet.

import java.io.*;

public class Bookmark implements Serializable
{
  private String ipAdr;
  private String username;
  private String pass;
  private String port;

  public Bookmark(String ipAdr, String username, String pass, String port)
  {
      this.ipAdr=ipAdr;
      this.username=username;
      this.pass=pass;
      this.port=port;
  }

      public String getIpAdr(){return ipAdr; }
      public String getUsername(){return username;}
    public String getPass(){return pass; }
    public String getPort(){return port; }

      public void setIpAdr(String ipAdr){this.ipAdr=ipAdr; }
      public void setFirma(String username){this.username=username; }
    public void setBudget(String pass){this.pass=pass; }
    public void setOprettet(String port){this.port=port; }

    public String toString()  //JList kalder selv denne - det bliver derved ipAdr & username man kan se i jlisten.
    {
        StringBuffer toString = new StringBuffer();
        toString.append(ipAdr + ": "+username);
        return new String(toString);
    }
}


private DefaultListModel bookmarkListModel = new DefaultListModel();  //Knyttes til jListBookmark for at gøre jListen dynamisk

jListBookmark = new JList(bookmarkListModel);

bookmarkListModel.addElement(new bookmark("ipAdr", "username", "pass", "port"))

Nu kan du så serialiserer jlisten.

Håber det kan bruges, og det var det du tænkte på....
Avatar billede arne_v Ekspert
19. april 2003 - 09:49 #2
Overvej evt. at gemme i et andet format end Java serialized object.

Det er nemt man har også nogle ulemper:
* det kan ikek læses af ikke-Java programmer
* hvis man ændrer i sine klasser kan man få problemer med at
  læse gemte filer
Avatar billede simonvalter Praktikant
19. april 2003 - 16:49 #3
ok mange tak
i første omgang skal det bare være nemt .. men det kan være jeg prøver mig med noget andet senere ;)
Avatar billede simonvalter Praktikant
19. april 2003 - 16:55 #4
arne_v > ville xml være et bedre alternativ .. ?  og hvad hvis man gerne ville gøre password lidt mere kryptisk at læse er der så en mulighed .. hvad ville jeg så skulle læse på?
Avatar billede arne_v Ekspert
19. april 2003 - 16:58 #5
XML ville være et udmærket valg at langtids gemme i.

Hvis der er passwords, så skal de naturligvis krypteres.

(det skal de iøvrigt også i et serialized Java object)
Avatar billede simonvalter Praktikant
19. april 2003 - 20:32 #6
hmm jeg troede jeg havde styr på det .. men jeg kan ikke hitte ud af at få fat i de data der ligger i bookmarks ..

jeg ville gøre det sådan her
  void jButton2_actionPerformed(ActionEvent e) {
  int selected = jListBookmark.getSelectedIndex();
    Object sel = jListBookmark.getModel().getElementAt(selected);

og så få data tilbage i jTextFieldPort .. etc.

det kan vel ikke være meningen jeg skal splitte den String op jeg får fra det selected item og så smide det i et array for derefter at komme det i jTextField's ? eller er det sådan det skal gøres.


jeg smider gerne nogle flere point hvis i også kan sige hvad jeg skal gøre hvis jeg ikke vil have en knap .. men eventen skal ske når jeg selecter et item på listen.
Avatar billede trp79 Nybegynder
19. april 2003 - 21:46 #7
Jeg mener at du i stedet for Object sel = jListBookmark.getModel().getElementAt(selected);

skal have Bookmark sel = jListBookmark.getModel().getElementAt(selected);

Men jeg er ikke helt sikker, jeg tjekker lige...
Avatar billede trp79 Nybegynder
19. april 2003 - 21:49 #8
Sådan her skal det se ud
Bookmark sel = (Bookmark)jListBookmark.getModel().getElementAt(selected);
Avatar billede simonvalter Praktikant
19. april 2003 - 21:50 #9
nej det virker vist fint ... men det jeg ikke kan hitte ud af er at få feks jTextFieldPort.setText(.......bookMark.getPort());
Avatar billede trp79 Nybegynder
19. april 2003 - 21:53 #10
jTextFieldPort.setText(sel.getPort()); 

Det virker ikke eller?
Avatar billede simonvalter Praktikant
19. april 2003 - 21:53 #11
øhh nm .. det var svaret .. tak :)
Avatar billede trp79 Nybegynder
19. april 2003 - 21:55 #12
Det var så lidt :o)
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