efefef Δημοσ. 7 Μαΐου 2011 Δημοσ. 7 Μαΐου 2011 Γεια σας....εχω την παρακατω κλαση η οποια παιρνει τισ τιμεσ και τισ καταχωρει σε ενα αρχειο τχτ. αυτο που θελω είναι πωσ να δηλωσω τισ 2 μεταβλητεσ int Posotita και double Price (που ειναι αριθμοι) για να τισ περασω στο temp2[] και πωσ θα κανω ελεγχο ωστε οταν δωσω ιδιο Id να αυξανεται η ποσοτητα του συγκεκριμενου item δλδ να αποθηκεύει το ιδιο προιον με Posotita++ Μπορει να βοηθησει καποιοσ???????? > package program; /** * * @author AcerLaptop */ public class Items extends Pelatis{ private String Id; private int Posotita; private String Perigrafi; private double Price; public void setId(String val){ this.Id=val; } public String getId(){ return Id; } public void setPosotita(int val){ this.Posotita=val; } public int getPosotita(){ return Posotita; } public void setPerigrafi(String val){ this.Perigrafi=val; } public String getPerigrafi(){ return Perigrafi; } public void setPrice(double val){ this.Price=val; } public double getPrice(){ return Price; } //me8odos perasmatos timwn stis metavlhtes ths Items public void addStoixeia() { int numberformat = 0; int numberdigits = 0; // read in user input JTextField id = new JTextField(); JTextField posotita = new JTextField(); JTextField price = new JTextField(); JTextField perigrafi = new JTextField(); final JComponent[] inputs = new JComponent[]{ new JLabel("Κωδικός"), id, new JLabel("Διαθέσιμη Ποσότητα"), posotita, new JLabel("Τιμή"), price, new JLabel("Περιγραφή"), perigrafi }; //elegxos pws kapoio apo ta plaisia den einai kena while (id.getText().equals("") || posotita.getText().equals("") || price.getText().equals("") || perigrafi.getText().equals("") || numberformat == 1 || numberdigits == 1) { JOptionPane.showMessageDialog(null, inputs, "Add user", JOptionPane.PLAIN_MESSAGE); Id = id.getText(); Posotita=****; Price =****; Perigrafi = perigrafi.getText(); numberdigits = 0; numberformat = 0; if (id.getText().equals("") || posotita.getText().equals("") || price.getText().equals("") || perigrafi.getText().equals("") || numberformat == 1) { JOptionPane.showMessageDialog(null, "Θα πρέπει να συμπληρώσετε όλα τα πεδία!", "Απέτυχε", JOptionPane.WARNING_MESSAGE); } Id = id.getText(); Posotita = ***** Price = ********* Perigrafi = perigrafi.getText(); } } public String toString() { return String.format(getId() + "#" + getPosotita() + "#" + getPrice() + "#" + getPerigrafi()); } //pros8hkh(append) mias grammhs String se arxeio .txt me onoma filename public void write2Txt(String temp2, String filename) { try { boolean append = true; FileWriter fw = new FileWriter(filename, append); fw.write(temp2 + "\n");//appends the string to the file fw.close(); } catch (IOException ioe) { String message1 = String.format(ioe.getMessage()); JOptionPane.showMessageDialog(null, message1, "file save error", JOptionPane.WARNING_MESSAGE); } } public void modifyThing(String filename, String id) { try { boolean check = false; String tempfid = null; String tempfposotita=null;//gia perasma sthn findid int change = 1; // Open the file that is the first // command line parameter FileInputStream fstream = new FileInputStream(filename); // Get the object of DataInputStream DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; //Read File Line By Line while ((strLine = br.readLine()) != null) { //append(save) se arxeio txt String[] temp2 = null; temp2 = lineDelimiter(strLine, 4, "#"); // se posa strings tha spasei px 4 edw if (temp2[0].equals(id) ) { check = true; Items itm = new Items(); itm.setId(temp2[0]); itm.Posotita=******** itm.setPrice************ itm.setPerigrafi(temp2[3]); change = itm.showChangeDetails(); if (change == 0) { itm.addStoixeia(); strLine = itm.toString(); //pairnei to id wste parakatw na elegksei an sto temp uparxei diplo-eggrafh tempfid = itm.getId(); } } Items eggrafhstoarxeio = new Items(); eggrafhstoarxeio.write2Txt(strLine, "temp1.txt"); //dhmiourgia tou temp1.txt me allagmenh thn mia grammh } if (check == false) { String msg = String.format("Δε βρέθηκε κανένα προϊόν με ID <" + id + " " + ">"); JOptionPane.showMessageDialog(null, msg, "Modify professor - not found!", JOptionPane.WARNING_MESSAGE); } //Close the input stream in.close(); String result3[] = findFullName("temp1.txt", tempfid); if (result3[1] != null)//an dld uparxoun 2 akrivws idies egrafes { ******** //Αν υπαρχει εγγραφη με το ιδιο ΙD θελω να αυξάνεται η ποσοτητα της ίδιασ εγγραφής δλδ Posotita ++ String msg = String.format("Το προϊόν με κωδικό :"+getId()+"υπάρχει"+"\n"+"η διαθέσιμη ποσότητα αυξήθηκε κατα 1"); JOptionPane.showMessageDialog(null, msg, "Modify professor - already exists!", JOptionPane.ERROR_MESSAGE); File oldbackup = new File("temp1.txt"); oldbackup.delete(); } else { rename("temp1.txt", filename); if (change == 0) { String msg = String.format("Η εγγραφή άλλαξε"); //an pathsw NO pio panw apla to emfanizei JOptionPane.showMessageDialog(null, msg, "Modify professor - successfully changed!", JOptionPane.INFORMATION_MESSAGE); } } } catch (Exception e) {//Catch exception if any //System.err.println("Error: " + e.getMessage()); String message1 = String.format(e.getMessage()); JOptionPane.showMessageDialog(null, message1, "file not found", JOptionPane.WARNING_MESSAGE); } } }
anakiou Δημοσ. 7 Μαΐου 2011 Δημοσ. 7 Μαΐου 2011 > try{ Posotita = Integer.parseInt(posotita.getText()); Price = Double.parseDouble(price.getText()); }catch(NumberFormatException nfe) { //Handle exception! } Το ίδιο κάνεις και εδώ: > itm.setId(temp2[0]); itm.Posotita = Integer.parseInt(temp2[1]); itm.setPrice = Double.parseDouble(temp2[2]); itm.setPerigrafi(temp2[3]); Βάζεις άλλο ένα catch block πριν το γενικό που έχεις βάλει στο τέλος: > catch(NumberFormatException nfe) { //Handle exception! } catch (Exception e) {//Catch exception if any //System.err.println("Error: " + e.getMessage()); String message1 = String.format(e.getMessage()); JOptionPane.showMessageDialog(null, message1, "file not found", JOptionPane.WARNING_MESSAGE); } Όσο για την ποσότητα αν κατάλαβα καλά πρέπει να την κάνεις static
efefef Δημοσ. 8 Μαΐου 2011 Μέλος Δημοσ. 8 Μαΐου 2011 οκ αυτο το εκανα σ'ευχαριστω! με την ποσοτητα τι εννοεισ δλδ?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.