Gå til innhold

problemer med vectorer og rammer


Anbefalte innlegg

jeg holder på med en oppgave, og har støtt på litt problemer.

 

"Når brukeren trykker på ”Statistics” i Tools menyen, skal det skrives ut hvor mange filer det finnes i arkivet i det skrollbare tekstområdet. "

 

"Når du trykker ”Remove File from Archive”, så skal ArkivFil objektet med det filnavnet i tekstfeltet for ” File Name” fjernes fra arkivet. Dersom det finnes en slik fil, så skal det fjernes fra arkivet og meldingen ”fjernet” skrives i tekstområdet og tekstfeltene tømmes for tekst. Hvis det ikke finnes en slik fil, skal det skrives en feilmelding i tekstområdet. Skriv koden for dette. "

 

jeg får ikke disse tingene til å fungere i rammen jeg har laget. jeg tror jeg må sette noe i klassen archive, men ikke vet jeg. alle hint mottas med stor takknemlighet.

 

// område A

public class MinRamme extends JFrame{

// område B

public minramme(){

// område C

}

// område D

public static void main(String[] args){

MinRamme m=new MinRamme();

m.setVisible(true);

}

}

 

 

 

 

 

class Arkiv{

privat Vector arkiv;

public Arkiv(){

arkiv=new Vector();

}

public void add(ArkivFil af){/*ikke ferdig*/}

public String skrivTilFil(){/*ikke ferdig*/}

public String getArkivnavn(){/*ikke ferdig*/}

public void setArkivnavn(String nyttarkivnavn){ arkivnavn = nyttarkivnavn;}

public String getArkivnavn(){ return arkivnavn;}

private String arkivnavn="arkiv.txt";

}

class ArkivFil {

private String filnavn;

private String author;

private String description;

public ArkivFil (){

}

public ArkivFil (String innfilnavn, String innauthor, String inndescription){

filnavn=innfilnavn;

author =innauthor;

description =inndescription;

}

public void setFilnavn(String innfilnavn){filnavn=innfilnavn;}

public String getFilnavn(){return filnavn;}

public void setAuthor (String innauthor){ author =innauthor;}

public String getAuthor (){return author;}

public void set description (String inndescription){ description =inndescription;}

public String getFilnavn(){return description;}

Lenke til kommentar
Videoannonse
Annonse

Du må i hvertfall ha en funksjon i FilArkiv-klassen som fjerner ArkivFiler med filnavnet du skriver i tekstfeltet. Noe ala

public String remove(String szRemNavn) {
 
String szStatus = "Fant ikke filen med navnet " + szRemNavn + "\n";
 
// Let gjennom etter ArkivFil med navn szRemNavn
for(int i=0; i<arkiv.size(); i++) {
 if( ((ArkivFil)arkiv.get(i)).getFilnavn().equals(szRemNavn) ) {
 	arkiv.remove(i);
 	szStatus = "Fjernet!\n";
 }
}
return szStatus;
}

 

Og MinRamme-klassen kan vel være noe slikt?

public class MinRamme extends JFrame implements ActionListener{

// område B
JButton jbAdd, jbRem;
JTextField jtfFilnavn;
JTextArea jtaOutput;
Arkiv arkiv;

public MinRamme(){
 
 arkiv = new Arkiv();
 
 jtfFilnavn = new JTextField();
 jtfFilnavn.setSize(200,200);
 jbAdd = new JButton("Legg til");
 jbAdd.addActionListener(this);
 jbRem = new JButton("Fjern");
 jbRem.addActionListener(this);
 jtaOutput = new JTextArea();
 
 JPanel jpNorth = new JPanel(new GridLayout(1,3));
 JPanel jpMain = new JPanel();
 jpMain.setLayout(new BorderLayout());
 
 this.add(jpNorth, BorderLayout.NORTH);
 this.add(jpMain, BorderLayout.CENTER);
 
 jpNorth.add(jtfFilnavn);
 jpNorth.add(jbAdd);
 jpNorth.add(jbRem);
 jpMain.add(jtaOutput, BorderLayout.CENTER);
 
 this.setSize(400,400);
 this.setTitle("Filarkiv");
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// område D


public static void main(String[] args){
 MinRamme m=new MinRamme();
 m.setVisible(true);
}

public void actionPerformed(ActionEvent evt) {
 if(evt.getSource() == jbAdd){
 	arkiv.add(new ArkivFil(jtfFilnavn.getText(), "dummy", "dummy"));
 	jtaOutput.append("La til fil. Nå er det så mange filer i arkivet: " + arkiv.getSize() + "\n");
 }
 else if(evt.getSource() == jbRem) {
 	jtaOutput.append( arkiv.remove(jtfFilnavn.getText()) );
 	jtaOutput.append("Ok. Nå er det så mange filer i arkivet: " + arkiv.getSize() + "\n");
 }
}
}

 

Gøy detta :D

Endret av Edorph
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...