Как мне написать в текстовый файл, используя Java? - PullRequest
2 голосов
/ 21 мая 2011

Я использовал книгу "Learning Java 2nd Edtion", чтобы попытаться заставить мое java-приложение записать мои данные в текстовый файл, называемый свойствами.Я манипулировал примером учебника в своем собственном коде, но все еще испытываю проблемы, пытаясь заставить его работать.Я думаю, что мне может понадобиться подключить ее к моей кнопке отправки, но это не упоминалось в этой главе.

В основном я пытаюсь сохранить информацию в текстовом файле, а затем использовать этот текстовый файл в другом месте, чтобы прочитать всеподробностей о свойствах.

Вот мой код для страницы AddProperty, поэтому любые советы будут с благодарностью.В данный момент iv ударил в стену.

/**
 *
 * @author Graeme
 */
package Login;

import java.io.*;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.EmptyBorder;

public class AddProperty
{
public void AddProperty()
{

    JFrame frame = new JFrame("AddPropertyFrame");
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // having to set sizes of components is rare, and often a sign    
    // of problems with layouts.
    //frame.setSize(800,600);
    JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER, 20,20));
    // make it big like the original
    panel.setBorder(new EmptyBorder(100,20,100,20));
    frame.add(panel);
    //panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));

    JLabel HouseNumber = new JLabel("House Number/Name");
    panel.add(HouseNumber);
    JTextField HouseNumber1 = new JTextField(10);
    panel.add(HouseNumber1);

    JLabel HousePrice = new JLabel("House Price");
    panel.add(HousePrice);
    JTextField HousePrice1 = new JTextField(10);
    panel.add(HousePrice1);

    JLabel HouseType = new JLabel("House Type");
    panel.add(HouseType);
    JTextField HouseType1 = new JTextField(10);
    panel.add(HouseType1);

    JLabel Location = new JLabel("Location");
    panel.add(Location);
    JTextField Location1 = new JTextField(10);
    panel.add(Location1);

    JButton submit = new JButton("Submit");
    panel.add(submit);
    submit.addActionListener(new Action());

    // tell the GUI to assume its natural (minimum) size.
    frame.pack();
}

static class Action implements ActionListener{

    @Override
    public void actionPerformed (ActionEvent e)
    {
        // this should probably be a modal JDialog or JOptionPane.
       JOptionPane.showMessageDialog(null, "You have successfully submitted a property.");
    }

    static class propertyList 
    {
        public static void main (String args[]) throws Exception {
            File properties = new File(args[0]);

            if (!properties.exists() || !properties.canRead() ) {
                System.out.println("Cant read " + properties);
                return;
            }
            if (properties.isDirectory()){
                String [] properties1 = properties.list();
                for (int i=0; i< properties1.length; i++)
                    System.out.println();
            }
            else
                try {
                    FileReader fr = new FileReader (properties);
                    BufferedReader in = new BufferedReader (fr);
                    String line;
                    while ((line = in.readLine())!= null)
                    System.out.println(line);
                }
            catch (FileNotFoundException e){
                System.out.println("Not Able To Find File");
            }
        }
    }
}

}

Ответы [ 2 ]

2 голосов
/ 23 мая 2011

в вашем Выполненном действии вы ничего не заявляете, например, в своем выполненном действии вы можете добавить.

   public void actionPerformed(ActionEvent e)
            {

              houseNumber2 = houseNumber1.getText();
              housePrice2 = housePrice1.getText();
              town1 = town.getText();
              comboBoxType2 = comboBoxType1.getSelectedItem();


            inputData = housenumber2 + "," + housePrice2 + "," + town1 + "," + comboBoxType2;
             FileName.Filewritermethod(inputData);
             frame.setVisible(false);

            }
       });

Это строки для получения значений ваших JTexFields и передачи их в текстовый файл, если у вас есть класс FileWriter

1 голос
/ 21 мая 2011

Ваш слушатель действия сейчас ничего не делает.

Добавьте код для добавления свойства следующим способом:

public void actionPerformed (ActionEvent e)
{
    //add your code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...