Hallo 
ich habe eine Aufgabe ein Fahrtenbuch zu programmieren. Das Layout ist per Swing erstellt und es funktioniert soweit alle mit dem speichern und drucken.
So sieht das ganze aus
Ich komme leider nicht bei den Buttons links unten weiter. Dort sollen jeweils die beiden Äußeren das erste und das letzte Objekt ausgeben und mit den Mittleren soll man weiterschalten können.
Die Fahrten sind als Objekte in einer Arraylist eingetragen. Ich bin soweit, dass jeweils das letzte eingetragene Objekt ausgegeben wird. Mein Problem liegt darin, die bestimmten Objekte, also eins vor eins weiter usw. auszugeben. Unten steht der Quellcode. Wie kann ich an die Sache rangehen?
Vielen Dank und schöne Grüße!
Das Fahrtenbuch:
Die Klasse Fahrt:
ich habe eine Aufgabe ein Fahrtenbuch zu programmieren. Das Layout ist per Swing erstellt und es funktioniert soweit alle mit dem speichern und drucken.
So sieht das ganze aus

Ich komme leider nicht bei den Buttons links unten weiter. Dort sollen jeweils die beiden Äußeren das erste und das letzte Objekt ausgeben und mit den Mittleren soll man weiterschalten können.
Die Fahrten sind als Objekte in einer Arraylist eingetragen. Ich bin soweit, dass jeweils das letzte eingetragene Objekt ausgegeben wird. Mein Problem liegt darin, die bestimmten Objekte, also eins vor eins weiter usw. auszugeben. Unten steht der Quellcode. Wie kann ich an die Sache rangehen?
Vielen Dank und schöne Grüße!
Das Fahrtenbuch:
Java:
import java.awt.EventQueue;
public class Fahrtenbuch {
private JFrame frame;
private JTextField textFieldVon;
private JTextField textFieldNach;
private JTextField textFieldAbfahrt;
private JTextField textFieldAnkunft;
private JTextField textFieldKm1;
private JTextField textFieldKm2;
private ArrayList<Fahrt> fahrtenbuch = new ArrayList<Fahrt>();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Fahrtenbuch window = new Fahrtenbuch();
window.frame.setVisible(true);
window.frame.pack();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Fahrtenbuch() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
/**
*
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 500, 274);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textFieldVon = new JTextField();
textFieldVon.setColumns(10);
JLabel lblVon = new JLabel("Von");
JLabel lblFahrtenbuch = new JLabel("Fahrtenbuch");
lblFahrtenbuch.setFont(new Font("Tahoma", Font.BOLD, 16));
textFieldNach = new JTextField();
textFieldNach.setColumns(10);
JLabel lblNach = new JLabel("Nach");
JLabel lblAbfahrtszeit = new JLabel("Abfahrtszeit");
JLabel lblAnkunftszeit = new JLabel("Ankunftszeit");
textFieldAbfahrt = new JTextField();
textFieldAbfahrt.setColumns(10);
textFieldAnkunft = new JTextField();
textFieldAnkunft.setColumns(10);
JLabel lblKmstand = new JLabel("KM-Stand");
JLabel lblKmstand_1 = new JLabel("KM-Stand");
textFieldKm1 = new JTextField();
textFieldKm1.setColumns(10);
textFieldKm2 = new JTextField();
textFieldKm2.setColumns(10);
JButton btnNeu = new JButton("Neu");
btnNeu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
felderLeeren();
}
});
JButton btnSpeich = new JButton("Speichern");
btnSpeich.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
int km1 = Integer.parseInt(textFieldKm1.getText());
int km2 = Integer.parseInt(textFieldKm2.getText());
Fahrt f1 = new Fahrt(textFieldVon.getText(), textFieldNach.getText(), textFieldAbfahrt.getText(), textFieldAnkunft.getText(), km1, km2);
fahrtenbuch.add(f1);
felderLeeren();
}
});
JButton btnDrucken = new JButton("Drucken");
btnDrucken.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
for(Fahrt f : fahrtenbuch){
System.out.println(f);
}
}
});
JPanel panel = new JPanel();
GroupLayout groupLayout = new GroupLayout(frame.getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap()
.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
.addComponent(lblNach)
.addComponent(lblVon))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 255, GroupLayout.PREFERRED_SIZE)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(btnNeu)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(btnSpeich)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(btnDrucken))
.addGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(textFieldNach, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(textFieldVon, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(30)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(lblFahrtenbuch)
.addGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(lblAnkunftszeit)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(textFieldAnkunft, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblKmstand_1))
.addGroup(groupLayout.createSequentialGroup()
.addComponent(lblAbfahrtszeit)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(textFieldAbfahrt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(32)
.addComponent(lblKmstand)))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(textFieldKm2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(textFieldKm1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))))
.addGap(21))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap()
.addComponent(lblFahrtenbuch)
.addGap(9)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(lblVon)
.addComponent(textFieldVon, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(lblAbfahrtszeit)
.addComponent(textFieldAbfahrt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(lblKmstand)
.addComponent(textFieldKm1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNach)
.addComponent(textFieldNach, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(lblAnkunftszeit)
.addComponent(textFieldAnkunft, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(lblKmstand_1)
.addComponent(textFieldKm2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(38)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addComponent(btnDrucken, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnSpeich, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnNeu, GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE))
.addGap(18)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addContainerGap(29, Short.MAX_VALUE))
);
JButton button = new JButton("|<");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
for(Fahrt f : fahrtenbuch){
System.out.println(f);
String km1 = String.valueOf(f.getKmFahrtbeginn());
String km2 = String.valueOf(f.getKmFahrtende());
textFieldVon.setText(f.getVon());
textFieldNach.setText(f.getNach());
textFieldKm1.setText(km1);
textFieldKm2.setText(km2);
textFieldAbfahrt.setText(f.getAbfahrtszeit());
textFieldAnkunft.setText(f.getAnkunftszeit());
}}}
);
panel.add(button);
JButton button_1 = new JButton("<");
panel.add(button_1);
JButton button_2 = new JButton(">");
panel.add(button_2);
JButton button_3 = new JButton(">|");
panel.add(button_3);
frame.getContentPane().setLayout(groupLayout);
}
private void felderLeeren() {
textFieldAbfahrt.setText(""); textFieldAnkunft.setText(""); textFieldKm1.setText(""); textFieldKm2.setText(""); textFieldNach.setText(""); textFieldVon.setText("");
}
}
Die Klasse Fahrt:
Java:
public class Fahrt {
private String von;
private String nach;
private String abfahrtszeit;
private String ankunftszeit;
private int kmFahrtbeginn;
private int kmFahrtende;
public Fahrt(String von, String nach, String abfahrtszeit,
String ankunftszeit, int kmFahrtbeginn, int kmFahrtende) {
super();
this.setVon(von);
this.nach = nach;
this.abfahrtszeit = abfahrtszeit;
this.ankunftszeit = ankunftszeit;
this.kmFahrtbeginn = kmFahrtbeginn;
this.kmFahrtende = kmFahrtende;
}
public String getVon() {
return von;
}
public void setVon(String von) {
this.von = von;
}
public String getNach() {
return nach;
}
public void setNach(String nach) {
this.nach = nach;
}
public String getAbfahrtszeit() {
return abfahrtszeit;
}
public void setAbfahrtszeit(String abfahrtszeit) {
this.abfahrtszeit = abfahrtszeit;
}
public String getAnkunftszeit() {
return ankunftszeit;
}
public void setAnkunftszeit(String ankunftszeit) {
this.ankunftszeit = ankunftszeit;
}
public int getKmFahrtbeginn() {
return kmFahrtbeginn;
}
public void setKmFahrtbeginn(int kmFahrtbeginn) {
this.kmFahrtbeginn = kmFahrtbeginn;
}
public int getKmFahrtende() {
return kmFahrtende;
}
public void setKmFahrtende(int kmFahrtende) {
this.kmFahrtende = kmFahrtende;
}
@Override
public String toString() {
return "Fahrt [von=" + getVon() + ", nach=" + nach + ", abfahrtszeit="
+ abfahrtszeit + ", ankunftszeit=" + ankunftszeit
+ ", kmFahrtbeginn=" + kmFahrtbeginn + ", kmFahrtende="
+ kmFahrtende + "]";
}
}