26. februar 2003 - 19:55Der er
22 kommentarer og 1 løsning
GUI/arrayList
hejsa og hjælp :) sidder her og er tabt jeg har en konti klasse med en metode findKonti() der er en arrayList der indeholder kontonumre og jeg har en GUI med txt2 felt og en but1 når jeg så indtaster et kontonr skal der tjekkes om den forefindes i min arrayList ellers må man ikke komme videre. den nærmeste jeg kan finde er en boolean contains som skulle return true man af en eller anden grund kan jeg ikke få det til at spille.
public void actionPerformed(ActionEvent e) { Object source = e.getSource();
if (source == but1) { if (check == 0) { int kontonummer = Integer.parseInt(txt2.getText()); //Et,konti.findKonto(kontonummer); //Et.konti.
kontrol(); konto.kontoNr(); check = 1; } }
} } // class ButtonListener dette har jeg i GUI har prøvet lidt forskelligt så hvis der en der lige ved hvordan hører jeg det gerne :)
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
metoden contains på en ArrayList returnerer om objektet findes i listen. Den kan du roligt bruge. if( list.contains(new Integer(kontonummer)) ) { // kontonummer eksisterer }
Nu ved jeg så ikke hvordan du gemmer kontonumre.. ligger de i et objekt i listen? Hvis ja, så: for( int i = 0; i < liste.size(); i++ ) { if( ((MyObject)liste.get(i)).getKontoNummer() == kontonummer ) { // kontonummer fundet break; } }
Jeg kan godt se hvad du prøver.. men det vil ikke virke fordi du leder efter et objekt i listen der er en String og er lig 124. Det er ikke hvad din ArrayList indeholder. Den indeholder objekter af typen Konto, ikke af typen String. Du kan ikke bruge indexOf, fordi du har ikke det objekt du leder efter! Du har kun en attribut på objektet, nemlig kontonummeret.
kan jeg ikke helt forstå da jeg har et array i konti classen public Konti() { konti = new ArrayList(); Konto konto; konti.add(new Konto(123, 2.5)); konti.add(new Konto(124, 2.5)); konti.add(new Konto(123, 2.5)); konti.add(new Konto(145, 2.5));
}// Konstruktør
public void addKonto(int kontoNr, double renteSats) { konti.add(new Konto(kontoNr, renteSats));
Du kan stadig ikke bruge contains, da den sammenligner Objekter i listen. Du skal løbe listen igennem og sammenligne dit kontonummer med ATTRIBUTTEN kontonummer på de objekter der er i listen. Det er derfor du skal bruge en for løkke.
skal jeg bruge den for løkke i metoden public int findKonto(int kontoNr) klassen konti eller i i gui og hvis jeg laver den i findkonto hvordan fanger jeg den så i metoden private class ButtonListener implements ActionListener ?????
final JTextField kontonummerTextField = new JTextField(new FixedSizeDocument(7), "", 10); // kun syv cifre må indtastes JButton searchButton = new JButton("Søg"); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { int result = Konti.getInstance().findKontoNummer(kontonummerTextField.getText()); if( result > -1 ) JOptionPane.showMessageDialog(getFocusOwner(), "Konto fundet på plads nr: " +result); } }); JLabel kontonummerLabel = new JLabel("Indtast kontonummer"); JPanel textFieldPanel = new JPanel(); textFieldPanel.add(kontonummerLabel); textFieldPanel.add(kontonummerTextField);
JPanel buttonPanel = new JPanel(); buttonPanel.add(searchButton);
getContentPane().add(textFieldPanel, BorderLayout.CENTER); getContentPane().add(buttonPanel, BorderLayout.SOUTH); } } class TestIt { public static void main(String[] args) { new TestFrame().show(); } } // Konti.java: import java.util.ArrayList;
public class Konti {
private static Konti instance = null;
private ArrayList konti;
protected Konti() {
konti = new ArrayList(); }
public static Konti getInstance() { if( instance == null ) instance= new Konti(); return instance; }
public void addKonto(Konto konto) { konti.add(konto); }
public ArrayList getKonti() { return konti; }
public int findKontoNummer(String kontonummer) { for( int i = 0; i < konti.size(); i++ ) { if( ((Konto)konti.get(i)).getKontonummer().equals(kontonummer) ) return i; } return -1; } } // Konto.java: public class Konto implements java.io.Serializable {
her lige et spørgsmål mere :) hvis du vil i testframe har du if( result > -1 ) JOptionPane.showMessageDialog(getFocusOwner(), "Konto fundet på plads nr: " +result); kan man få den til at åbne en anden klasse med jframe i stedet eks public class DinKonto extends JFrame ? det er fordi der har jeg hæv og indsæt på konto
hvis det er muligt vil jeg meget gerne have dig på min icq 141221874 ville være en stor hjælp.
Synes godt om
Ny brugerNybegynder
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.