2017-03-17 10 views
0

Ich muss Texte von Textfeldern in Textdatei speichern, aber jeder Code, den ich gefunden oder gemacht habe, hat nicht funktioniert, keine Ahnung? wie überhaupt? welcher Code würde funktionieren. ich musste java gui verwenden, wo mir mein lehrer über java beibringt, aber nichts über gui, also kann ich nicht einmal speichern in textdatei.java GUI wie man in Textdatei speichert

public class FlightsPanel extends JPanel { 
private Flight flightSelected = null; 
private JTextField textFieldDepartureAirport; 
private JTextField textFieldArrivalAirport; 
private JTextField textFieldDepartureDate; 
private JTextField textFieldArrivalDate; 
private JRadioButton rdbtnBoarding; 
private JRadioButton rdbtnChecking; 
private JRadioButton rdbtnAvailable; 
private JRadioButton rdbtnClosed; 
private JTextField textFieldCost; 

private DefaultListModel<String> populateFlights() { 
    DefaultListModel<String> list = new DefaultListModel<String>(); 
    ArrayList<Flight> FlightList = MainMenu.getAirlineMgr().getFlightList(); 

    for (int i = 0; i < FlightList.size(); i++) { 
     list.addElement(FlightList.get(i).getFlightNumber()); 
    } 

    return list; 
} 

private void displayFlight(String number) { 
    flightSelected = MainMenu.getAirlineMgr().getFlightByNumber(number); 
    textFieldDepartureAirport.setText(flightSelected.getDepartureAirport()); 
    textFieldArrivalAirport.setText(flightSelected.getArrivalAirport()); 
    textFieldDepartureDate.setText(flightSelected.getDepartureDate().toString()); 
    textFieldArrivalDate.setText(flightSelected.getArrivalDate().toString()); 
    textFieldCost.setText(Double.toString(flightSelected.getCost())); 

    if (flightSelected.getFlightStatus() == Flight.Status.AVAILABLE) { 
     rdbtnAvailable.setSelected(true); 
    } else { 
     if (flightSelected.getFlightStatus() == Flight.Status.BOARDING) { 
      rdbtnBoarding.setSelected(true); 
     } else { 
      if (flightSelected.getFlightStatus() == Flight.Status.CHECKING) { 
       rdbtnChecking.setSelected(true); 
      } else { 
       if (flightSelected.getFlightStatus() == Flight.Status.CLOSED) { 
        rdbtnClosed.setSelected(true); 
       } 
      } 
     } 
    } 
} 

private void saveFlight() { 
    flightSelected.setDepartureAirport(textFieldDepartureAirport.getText()); 
    flightSelected.setArrivalAirport(textFieldArrivalAirport.getText()); 
    flightSelected.setCost(Double.parseDouble(textFieldCost.getText())); 

    // flightSelected.setDepartureDate(textFieldDepartureDate.getText()); 
    // flightSelected.setArrivalDate(textFieldArrivalDate.getText()); 

    if (rdbtnAvailable.isSelected()) { 
     flightSelected.setFlightStatus(Flight.Status.AVAILABLE); 
    } else { 
     if (rdbtnBoarding.isSelected()) { 
      flightSelected.setFlightStatus(Flight.Status.BOARDING); 
     } else { 
      if (rdbtnChecking.isSelected()) { 
       flightSelected.setFlightStatus(Flight.Status.CHECKING); 
      } else { 
       if (rdbtnClosed.isSelected()) { 
        flightSelected.setFlightStatus(Flight.Status.CLOSED); 
       } 
      } 
     } 
    } 
} 

public FlightsPanel() { 
    setBackground(new Color(175, 238, 238)); 
    setLayout(null); 

    JList list = new JList(populateFlights()); 
    list.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent arg0) { 
      displayFlight(list.getSelectedValue().toString()); 
     } 
    }); 
    list.setBorder(new LineBorder(new Color(0, 0, 0), 1, true)); 
    list.setBounds(141, 161, 89, 81); 
    add(list); 

    JLabel lblNewLabel = new JLabel("Available flights:"); 
    lblNewLabel.setBounds(141, 136, 121, 14); 
    add(lblNewLabel); 

    textFieldDepartureAirport = new JTextField(); 
    textFieldDepartureAirport.setBounds(206, 36, 112, 20); 
    add(textFieldDepartureAirport); 
    textFieldDepartureAirport.setColumns(10); 

    JLabel lblNewLabel_1 = new JLabel("Departure Airport:"); 
    lblNewLabel_1.setBounds(206, 11, 112, 14); 
    add(lblNewLabel_1); 

    textFieldArrivalAirport = new JTextField(); 
    textFieldArrivalAirport.setColumns(10); 
    textFieldArrivalAirport.setBounds(10, 36, 112, 20); 
    add(textFieldArrivalAirport); 

    JLabel lblArrivalAirport = new JLabel("Arrival Airport:"); 
    lblArrivalAirport.setBounds(10, 11, 112, 14); 
    add(lblArrivalAirport); 

    textFieldDepartureDate = new JTextField(); 
    textFieldDepartureDate.setColumns(10); 
    textFieldDepartureDate.setBounds(206, 91, 192, 20); 
    add(textFieldDepartureDate); 

    JLabel lblDepartureDate = new JLabel("Departure Date:"); 
    lblDepartureDate.setBounds(206, 67, 112, 14); 
    add(lblDepartureDate); 

    textFieldArrivalDate = new JTextField(); 
    textFieldArrivalDate.setColumns(10); 
    textFieldArrivalDate.setBounds(10, 91, 192, 20); 
    add(textFieldArrivalDate); 

    JLabel lblArrivalDate = new JLabel("Arrival Date:"); 
    lblArrivalDate.setBounds(10, 66, 112, 14); 
    add(lblArrivalDate); 

    rdbtnBoarding = new JRadioButton("BOARDING"); 
    rdbtnBoarding.setBounds(10, 211, 112, 23); 
    add(rdbtnBoarding); 

    rdbtnChecking = new JRadioButton("CHECKING"); 
    rdbtnChecking.setBounds(10, 237, 112, 23); 
    add(rdbtnChecking); 

    rdbtnAvailable = new JRadioButton("AVAILABLE"); 
    rdbtnAvailable.setBounds(10, 159, 112, 23); 
    add(rdbtnAvailable); 

    JLabel lblStatus = new JLabel("Status:"); 
    lblStatus.setBounds(20, 138, 220, 14); 
    add(lblStatus); 

    rdbtnClosed = new JRadioButton("CLOSED"); 
    rdbtnClosed.setBounds(10, 185, 112, 23); 
    add(rdbtnClosed); 

    ButtonGroup group = new ButtonGroup(); 
    group.add(rdbtnBoarding); 
    group.add(rdbtnChecking); 
    group.add(rdbtnAvailable); 
    group.add(rdbtnClosed); 

    JButton button = new JButton("Cancel"); 
    button.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
      MainMenu.hideFlights(); 
     } 
    }); 
    button.setBounds(10, 269, 89, 23); 
    add(button); 

    JButton btnConfirm = new JButton("Confirm"); 
    btnConfirm.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
      saveFlight(); 
      MainMenu.hideFlights(); 

     } 
    }); 
    btnConfirm.setBounds(351, 269, 89, 23); 
    add(btnConfirm); 

    JLabel lblCost = new JLabel("Cost:"); 
    lblCost.setBounds(341, 11, 112, 14); 
    add(lblCost); 

    textFieldCost = new JTextField(); 
    textFieldCost.setColumns(10); 
    textFieldCost.setBounds(328, 36, 112, 20); 
    add(textFieldCost); 
} 

} pic of design

Antwort

0

können Sie grundlegende Datei aus Java Schreiben verwenden. Der einzige Unterschied zum einfachen Schreiben von Dateien besteht darin, dass Sie die Zeichenfolgen aus den Textattributen Ihrer Objekte schreiben müssen. Hier ist ein Beispiel aus dem Code:

import java.io.PrintWriter; 

try{ 
    PrintWriter fileWriter = new PrintWriter("myFile.txt", "UTF-8"); 
    fileWriter.println(textFieldDepartureAirport.selectAll()); 
    fileWriter.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

Da Ihr Lehrer nicht viel über die UI-Elemente enthalten, Sie sind in der Lage, die JavaDoc Informationen über den Objekttyp zu suchen, die die Daten halten. Zum Beispiel werden Ihre Textfelder als JTextField erklärt, so können Sie mehr Informationen zu dieser Klasse finden Sie hier:

https://docs.oracle.com/javase/7/docs/api/javax/swing/JTextField.html

Verwandte Themen