Java 在ArrayList中导航
我的代码读取人员列表并在互联网上搜索他们。 由于某种原因,我无法按正确的顺序返回。我第一次按“返回”按钮时,它总是再按一次,只有第二次klick按它应该做的 代码编辑 对不起,英语不好,这是我的全部代码:Java 在ArrayList中导航,java,actionlistener,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 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);
}
}
导入java.awt.BorderLayout;
导入java.awt.event.*;
导入java.io.*;
导入java.net.URI;
导入java.net.URISyntaxException;
导入java.util.*;
导入javax.swing.*;
公共类MainGui{
专用JTextField计数器;
私有JFrame;
私人ArrayList gastListe;
阿克图埃勒尔加斯蒂德私人酒店;
字符串名称;
字符串nachname;
字符串城市;
弦膜;
公共静态void main(字符串[]args){
MainGui=新的MainGui();
gui.los();
}
公共图书馆{
frame=新JFrame(“Arrival LookAPP v1.2”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel=新的JPanel();
JPanel textPanel=新的JPanel();
计数器=新的JTextField();
柜台设置文本(“00/00”);
JButton vorheigergast=新JButton(“”);
nächsterGast.addActionListener(新的nächsterGastListener());
gastListe=newarraylist();
textPanel.add(计数器);
textPanel.add(vorherigerGast);
textPanel.add(nächsterGast);
JMenuBar menüleiste=新JMenuBar();
JMenu menüDatei=新JMenu(“Datei”);
JMenuItem menüpunktladed=新JMenuItem(“装载”);
添加ActionListener(新的menüladenger());
menüDatei.add(menüpunktladed);
menüleiste.add(menüDatei);
框架:setJMenuBar(menüleiste);
frame.getContentPane().add(BorderLayout.CENTER,mainPanel);
frame.getContentPane().add(BorderLayout.SOUTH,textPanel);
框架。设置尺寸(750130);
frame.setAlwaysOnTop(真);
frame.setVisible(true);
}
公共字符串countIt(){
字符串c1=字符串.valueOf(Aktuellergastinex);
String c2=String.valueOf(gastListe.size());
字符串c=c1+“/”+c2;
返回c;
}
公共类Menüladenster实现ActionListener{
已执行的公共无效操作(操作事件ev){
JFileChooser dateiÖffnen=新的JFileChooser();
dateiÖffnen.setCurrentDirectory(新文件(“//T:/Rezeption/Night Auditor/Arrival LookApp/export”);
dateiÖffnen.showOpenDialog(框架);
试一试{
dateiLaden(dateiÖffnen.getSelectedFile());
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
}
公共类VorherigerGastListener实现ActionListener{
已执行的公共无效操作(操作事件ev){
vorherigenGastZeigen();
counter.setText(countIt());
}
}
公共类NächsterGastListener实现ActionListener{
已执行的公共无效操作(操作事件ev){
nächstenGastZeigen();
counter.setText(countIt());
}
}
公共无效nächstenGastZeigen(){
if(aktuellergastinex