浏览ArrayLists

时间:2014-11-17 00:24:17

标签: java actionlistener

我的代码会读取人员列表并在互联网上搜索他们。 出于某种原因,我无法以正确的顺序导航回来。我第一次按下"回去"按钮它总是走得更远,而只有第二个klick才能达到应有的效果。

已编辑的代码

抱歉英语不好,这是我的全部代码:

import java.awt.BorderLayout;
import java.awt.event.*;
import java.io.*;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.*;

import javax.swing.*;

public class MainGui {
    private JTextField counter;
    private JFrame frame;
    private ArrayList<Gast> gastListe;
    private int aktuellerGastIndex;
    String vorname;
    String nachname;
    String city;
    String firma;

    public static void main(String[] args) {
        MainGui gui = new MainGui();
        gui.los();
    }

    public void los() {
        frame = new JFrame("Arrival LookAPP v1.2");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel mainPanel = new JPanel();
        JPanel textPanel = new JPanel();
        counter = new JTextField();
        counter.setText("00/00");       
        JButton vorherigerGast = new JButton("<");
        vorherigerGast.addActionListener(new VorherigerGastListener());
        JButton nächsterGast = new JButton(">");
        nächsterGast.addActionListener(new NächsterGastListener());
        gastListe = new ArrayList<Gast>();
        textPanel.add(counter);
        textPanel.add(vorherigerGast);
        textPanel.add(nächsterGast);
        JMenuBar menüleiste = new JMenuBar();
        JMenu menüDatei = new JMenu("Datei");
        JMenuItem menüPunktLaden = new JMenuItem("Laden");
        menüPunktLaden.addActionListener(new MenüLadenListener());
        menüDatei.add(menüPunktLaden);
        menüleiste.add(menüDatei);
        frame.setJMenuBar(menüleiste);
        frame.getContentPane().add(BorderLayout.CENTER, mainPanel);
        frame.getContentPane().add(BorderLayout.SOUTH, textPanel);
        frame.setSize(750,130);
        frame.setAlwaysOnTop(true);
        frame.setVisible(true); 
    }

    public String countIt() {
        String c1 = String.valueOf(aktuellerGastIndex);
        String c2 = String.valueOf(gastListe.size());   
        String c = c1 + "/" + c2;
        return c;
    }

    public class MenüLadenListener implements ActionListener {
        public void actionPerformed(ActionEvent ev) {
            JFileChooser dateiÖffnen = new JFileChooser();
            dateiÖffnen.setCurrentDirectory(new File("//T:/Rezeption/Night Auditor/Arrival LookApp/export"));
            dateiÖffnen.showOpenDialog(frame);
            try {
                dateiLaden(dateiÖffnen.getSelectedFile());
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }


    public class VorherigerGastListener implements ActionListener {
        public void actionPerformed(ActionEvent ev) {
            vorherigenGastZeigen();
            counter.setText(countIt());
        }
    }

    public class NächsterGastListener implements ActionListener {
        public void actionPerformed(ActionEvent ev) {
            nächstenGastZeigen();
            counter.setText(countIt());
        }
    }

    public void nächstenGastZeigen() {
        if (aktuellerGastIndex < gastListe.size()){
            aktuellerGast = gastListe.get(aktuellerGastIndex);
            aktuellerGastIndex++;
            System.out.println(aktuellerGastIndex + "/" + gastListe.size());
        }
    }

    public void vorherigenGastZeigen() {
        if (aktuellerGastIndex < gastListe.size()){
            aktuellerGast = gastListe.get(aktuellerGastIndex);
            System.out.println(aktuellerGastIndex);
            aktuellerGastIndex--;
        }
    }

    private void dateiLaden(File datei) {
        aktuellerGastIndex = 0;
        gastListe = new ArrayList<Gast>();
        try {
            BufferedReader reader = new BufferedReader(new FileReader(datei));
            String zeile = null;
                    while ((zeile = reader.readLine()) != null) {
                        gastErstellen(zeile);
                    }
                    reader.close();
        } catch(Exception ex) {
            System.out.println("konnte Karte nicht lesen");
            ex.printStackTrace();
        }
        nächstenGastZeigen();
        counter.setText(countIt());
    }

    private void gastErstellen(String zuParsendeZeile) {
        String[] ergebnis = zuParsendeZeile.split("\"");
        vorname= "";
        nachname="";
        city="";
        firma="";
        try {
            vorname = ergebnis[1].toString();
            if (vorname.indexOf(" ") == -1) {
            } else {
                int io; 
                while(vorname.indexOf(" ") != -1) {
                    io = vorname.indexOf(" ");
                    vorname = vorname.substring(0,io) +"+"+ vorname.substring(io+1, vorname.length());
                }
            }
        } catch (Exception e1) {}

        try {
            nachname = ergebnis[3].toString();
            if (nachname.indexOf(" ") == -1) {
            } else {
                int io; 
                while(nachname.indexOf(" ") != -1) {
                    io = nachname.indexOf(" ");
                    nachname = nachname.substring(0,io) +"+"+ nachname.substring(io+1, nachname.length());
                }
            }
        } catch (Exception e1) {}

        try {
            city = ergebnis[5].toString();
            if (city.indexOf(" ") == -1) {
            } else {
                int io; 
                while(city.indexOf(" ") != -1) {
                    io = city.indexOf(" ");
                    city = city.substring(0,io) +"+"+ city.substring(io+1, city.length());
                }
            }
        } catch (Exception e) {}

        try {
            firma = ergebnis[7].toString();
            if (firma.indexOf(" ") == -1) {
            } else {
                int io; 
                while(firma.indexOf(" ") != -1) {
                    io = firma.indexOf(" ");
                    firma = firma.substring(0,io) +"+"+ firma.substring(io+1, firma.length());
                }
            }
        } catch (Exception e) {}
        Gast gast = new Gast(vorname, nachname, city, firma);
        gastListe.add(gast);
    }
}

1 个答案:

答案 0 :(得分:0)

当调用 openWebpage()时, aktuellerGast 的内容为空值。