[ stevan_nk @ 12.06.2011. 15:51 ] @
Napisao sam jedan mali programčić koji kada upišete podatke ime , prezime ... i kliknete dugme Sačuvaj progam sve podatke sačuva u fajlu Kontakt.txt . Napravio sam GUI pomoću Window Builder plugina za Eclipse koristeći Swing biblioteku . Problem je sledeći što kad hoću da ispišem još jedan red u fajlu program samo overwrite-uje postojeće ime,prezime... a ja hoću da svaki klik na dugme "Sačuvaj" upisuje novi red u fajl.
Evo izvornog koda :
Code:
package GUIzadaci;

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.factories.FormFactory;
import com.jgoodies.forms.layout.RowSpec;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.Color;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;
import java.io.PrintWriter;

import javax.swing.JFormattedTextField;

public class GUIzadatak {

     JFrame frmPodaciBeta;
     JLabel lblJmbg;
     JButton btnSave;
     JLabel lblDrava;
     private JFormattedTextField tfIme;
     private JFormattedTextField tfPrezime;
     private JFormattedTextField tfUlica;
     private JFormattedTextField tfGrad;
     private JFormattedTextField tfDržava;
     private JFormattedTextField tfBroj;
     private JFormattedTextField tfJMBG;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    GUIzadatak window = new GUIzadatak();
                    window.frmPodaciBeta.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    /**
     * Create the application.
     */
    public GUIzadatak() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
     void initialize() {
        frmPodaciBeta = new JFrame("Podaci 1.0 Beta");
        frmPodaciBeta.setTitle("Podaci 1.1 ");
        frmPodaciBeta.getContentPane().setFont(new Font("DejaVu Sans", Font.PLAIN, 12));
        frmPodaciBeta.setBounds(100, 100, 412, 257);
        frmPodaciBeta.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frmPodaciBeta.getContentPane().setLayout(new FormLayout(new ColumnSpec[] {
                ColumnSpec.decode("min(50dlu;default)"),
                ColumnSpec.decode("min(50dlu;default):grow"),},
            new RowSpec[] {
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,
                FormFactory.RELATED_GAP_ROWSPEC,
                FormFactory.DEFAULT_ROWSPEC,}));
        
        JLabel lblNewLabel = new JLabel("Ime");
        frmPodaciBeta.getContentPane().add(lblNewLabel, "1, 1, left, default");
        
        tfIme = new JFormattedTextField();
        frmPodaciBeta.getContentPane().add(tfIme, "2, 1, fill, default");
        
        JLabel lblPrezime = new JLabel("Prezime");
        frmPodaciBeta.getContentPane().add(lblPrezime, "1, 2, left, default");
        
        tfPrezime = new JFormattedTextField();
        frmPodaciBeta.getContentPane().add(tfPrezime, "2, 2, fill, default");
        
        JLabel lblUlica = new JLabel("Ulica");
        frmPodaciBeta.getContentPane().add(lblUlica, "1, 3, left, default");
        
        tfUlica = new JFormattedTextField();
        frmPodaciBeta.getContentPane().add(tfUlica, "2, 3, fill, default");
        
        JLabel lblGrad = new JLabel("Grad");
        frmPodaciBeta.getContentPane().add(lblGrad, "1, 4, left, default");
        
        tfGrad = new JFormattedTextField();
        frmPodaciBeta.getContentPane().add(tfGrad, "2, 4, fill, default");
        
        lblDrava = new JLabel("Država");
        frmPodaciBeta.getContentPane().add(lblDrava, "1, 5, left, default");
        
        tfDržava = new JFormattedTextField();
        frmPodaciBeta.getContentPane().add(tfDržava, "2, 5, fill, default");
        
        JLabel lblBroj = new JLabel("Broj");
        frmPodaciBeta.getContentPane().add(lblBroj, "1, 6, left, default");
        
        tfBroj = new JFormattedTextField();
        frmPodaciBeta.getContentPane().add(tfBroj, "2, 6, fill, default");
        
        lblJmbg = new JLabel("JMBG");
        frmPodaciBeta.getContentPane().add(lblJmbg, "1, 7, left, default");
        
        tfJMBG = new JFormattedTextField();
        frmPodaciBeta.getContentPane().add(tfJMBG, "2, 7, fill, default");
        
        btnSave = new JButton("Sačuvaj");
        btnSave.setBackground(Color.ORANGE);
        btnSave.setForeground(Color.BLUE);
        btnSave.setFont(new Font("DejaVu Sans", Font.BOLD, 12));
        frmPodaciBeta.getContentPane().add(btnSave, "2, 11, center, default");    
        btnSave.addActionListener(new ActionListener()
        {   
            // Treba promjeniti kod da više puta može da se unese ! ! !
            // Treba formatirati text polja !
               public void actionPerformed(ActionEvent e)
       {    
               String ime;
            String prezime;
            String ulica;
            String grad;
            String drzava;
            String broj;
            String JMBG;

            ime=tfIme.getText();
            prezime=tfPrezime.getText();
            ulica=tfUlica.getText();
            grad=tfGrad.getText();
            drzava=tfDržava.getText();
            broj=tfBroj.getText();
            JMBG=tfJMBG.getText();
            try{
                
                  FileWriter fstream = new FileWriter("Kontak.txt");
                  PrintWriter out = new PrintWriter(fstream);
                  out.println(
                          "Ime: "+ime+";"+
                          "Prezime: "+prezime+";"+
                          "Ulica: "+ulica+";"+
                          "Grad: "+grad+";"+
                          "Država: "+drzava+";"
                          +"Broj: "+broj+";"+
                          "JMBG: "+JMBG+";");
                  out.close();
                  }catch (Exception i){
                  System.err.println("Error: " + i.getMessage());
                  }
         }
       });  
}
}
[ stevan_nk @ 12.06.2011. 16:01 ] @
Evo izgleda programa

U attachmentu je fajl Kontakt.txt
[ pajaja @ 12.06.2011. 17:21 ] @
Pozdrav,
prosledi true za append FileWriteru
Code:
 FileWriter fstream = new FileWriter("Kontak.txt", true);

http://download.oracle.com/jav...ml#FileWriter(java.lang.String, boolean)

[Ovu poruku je menjao pajaja dana 12.06.2011. u 18:33 GMT+1]
[ stevan_nk @ 12.06.2011. 17:59 ] @
Hvala puno , radi sad :)
A kako da napravim da u JFormattedTextField mogu da se kucaju samo brojevi ili samo slova ? Tražio sam po netu nešto , ali mi izgleda komplikovano :D .
[ weeboo @ 15.06.2011. 10:02 ] @
Citat:
kako da napravim da u JFormattedTextField mogu da se kucaju samo brojevi ili samo slova ? Tražio sam po netu nešto , ali mi izgleda komplikovano :D .


Regularni izrazi?