PaidiThauma Δημοσ. 14 Ιανουαρίου 2010 Δημοσ. 14 Ιανουαρίου 2010 Εχω το βιβλιο "Οδηγος της Java 2" (τριτη εκδοση) και μεσα εψαξα για τα applets. λεει πολλα χρησημα πραγματα αλλα οχι αυτο που σκεφτομουν. Θελω λοιπον να κανω ενα applet που να εχει π.χ. 3 παραθυρακια στα οποια να εισαγω 3 τιμες (int στην περιπτωση μου). Επισης θελω να εχει ενα κουμπι που με αυτο να καταχωρει τις τιμες αυτες σε μεταβλητες, να κανει πραξεις που θελω και να μου βγαζει το αποτελεσμα. αμα μπορειτε δειξτε μου πως να κανω τα λεγομενα παραθυρακια και κουμπι εισχωρισης τιμων. (παραθυρακια κατω) Ακομα δεν εχω τις απαραιτητες γνωσεις. Ειναι ενα μερος της Java που θα μαθω αργοτερα. απλος θελω ενα μικρο προγραμματακι. οποιος μπορει να βοηθησει..εγω ακουω.^^ (ΔΕΝ ζηταω να μου κανετε το προγραμμα.(εκτος και αμα θελετε. )
PaidiThauma Δημοσ. 14 Ιανουαρίου 2010 Μέλος Δημοσ. 14 Ιανουαρίου 2010 Λοιπον.Το βιβλιο αυτο στο Internet ειχε επιπροσθετο υλικο.(κωδικες απο τα παραδειγματα και κατι αλλα) βρηκα εναν κωδικα που συγρινε 2 files. εγραφες σε 2 κουτακια τα direction και αυτο τα συγκρινε. τα εκανα τροποποιηση (ΔΕΝ ΕΙΝΑΙ ΔΙΚΑ ΜΟΥ) το compile γινετε μια χαρα.το αρχιζει μια χαρα αλλα οταν παταω "Upologise" ΚΟΛΑΕΙ παγωνει και ουτε καν βγενει απο αυτο. παρακατω ειναι ο κωδικας που τροποποιησα. τι πρεπει να κανω? (τα μηνυματα ειναι τυχαια."χρυσος κτλ") > import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class SwingFC implements ActionListener { JTextField jtfFirst; JTextField jtfSecond; JTextField jtfThird; JButton jbtnComp; JLabel jlabFirst, jlabSecond, jlabThird; JLabel jlabResult; SwingFC() { JFrame jfrm = new JFrame("Compare Files"); jfrm.setLayout(new FlowLayout()); jfrm.setSize(220, 210); jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jtfFirst = new JTextField(14); jtfSecond = new JTextField(14); jtfThird = new JTextField(14); jtfFirst.setActionCommand("xrusos"); jtfSecond.setActionCommand("argiros"); jtfThird.setActionCommand("xalkos"); JButton jbtnComp = new JButton("Upologise"); jbtnComp.addActionListener(this); jlabFirst = new JLabel("Xrusos: "); jlabSecond = new JLabel("Argiros: "); jlabThird = new JLabel("Xalkos: "); jlabResult = new JLabel(""); jfrm.add(jlabFirst); jfrm.add(jtfFirst); jfrm.add(jlabSecond); jfrm.add(jtfSecond); jfrm.add(jlabThird); jfrm.add(jtfThird); jfrm.add(jbtnComp); jfrm.add(jlabResult); jfrm.setVisible(true); } public void actionPerformed(ActionEvent ae) { int i=0, j=0, n=0; int f1, f2, f3, k, ks, d; if(jtfFirst.getText().equals("")) { jlabResult.setText("Grapse Kati."); return; } if(jtfSecond.getText().equals("")) { jlabResult.setText("Grapse Kati."); return; } if(jtfThird.getText().equals("")) { jlabResult.setText("Grapse Kati."); return; } try { do { i = Integer.parseInt(jtfFirst.getText()); j = Integer.parseInt(jtfSecond.getText()); n = Integer.parseInt(jtfThird.getText()); } while(i != 1 && j != 1&&n!=1); } catch(ArithmeticException exc) { jlabResult.setText("Ti Piges Kai evales??"); return; } k=n+j+i; d=k/25; ks=k/15; System.out.println("To apotelesma "+d+" to apotelesma 2 "+ks); } public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { new SwingFC(); } }); } } αμα δεν απαντισει καποιος συντομα θα το βαλω σε νεο θεμα. Επειδη ηδη το ειδαν αρκετοι και δεν θα το ξαναδουν.:]
jstark Δημοσ. 14 Ιανουαρίου 2010 Δημοσ. 14 Ιανουαρίου 2010 Το πρόβλημα είναι στο do...while. Βασικά, είναι λίγο άκυρο. Κοίταξέ το προσεκτικά και θα το καταλάβεις.
PaidiThauma Δημοσ. 14 Ιανουαρίου 2010 Μέλος Δημοσ. 14 Ιανουαρίου 2010 Μηπως δεν θελει καν do-while? ο κωδικας την ειχε. και δεν το αλλαξα επειδη νομιζα πως ειναι απαραιτητο. (δεν ξερω απο applets ακομα) αμα δεν ειναι αυτο δως μου και καμια αλλη βοηθεια. που θα παει.θα το βρω.xD
virxen75 Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 1o δεν είναι applet όπως λες 2ο μέσα στο while προφανώς (αν είναι σωστή η συνθήκη) θα έπρεπε να αλλάζουν οι τιμές των i,j,n για να μπορεί να βγει από τον βρόγχο. τώρα δουλεύει μόνο αν ένα από τα τρία είναι ίσο με 1 στείλε τον κώδικα πριν την τροποποίηση να δούμε μήπως ξέχασες κάτι βασικό
PaidiThauma Δημοσ. 15 Ιανουαρίου 2010 Μέλος Δημοσ. 15 Ιανουαρίου 2010 Δεν Ειναι Applet? αμα τρεξεις τον κωδικα ομως θα καταλαβεις τι θελω. να μου εμφανιζει αυτο το παραθυρο.:] Ο μη τροποποιημενος κωδικας συγκρινε 2 files >/* Project 15-1 A Swing-based file comparison utility. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class SwingFC implements ActionListener { JTextField jtfFirst; // holds the first file name JTextField jtfSecond; // holds the second file name JButton jbtnComp; // button to compare the files JLabel jlabFirst, jlabSecond; // displays prompts JLabel jlabResult; // displays results and error messages SwingFC() { // Create a new JFrame container. JFrame jfrm = new JFrame("Compare Files"); // Specify FlowLayout for the layout manager. jfrm.setLayout(new FlowLayout()); // Give the frame an initial size. jfrm.setSize(200, 190); // Terminate the program when the user closes the application. jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Create the text fields for the file names.. jtfFirst = new JTextField(14); jtfSecond = new JTextField(14); // Set the action commands for the text fields. jtfFirst.setActionCommand("fileA"); jtfSecond.setActionCommand("fileB"); // Create the Compare button. JButton jbtnComp = new JButton("Compare"); // Add action listener for the Compare button. jbtnComp.addActionListener(this); // Create the labels. jlabFirst = new JLabel("First file: "); jlabSecond = new JLabel("Second file: "); jlabResult = new JLabel(""); // Add the components to the content pane. jfrm.add(jlabFirst); jfrm.add(jtfFirst); jfrm.add(jlabSecond); jfrm.add(jtfSecond); jfrm.add(jbtnComp); jfrm.add(jlabResult); // Display the frame. jfrm.setVisible(true); } // Compare the files when the Compare button is pressed. public void actionPerformed(ActionEvent ae) { int i=0, j=0; FileInputStream f1; FileInputStream f2; // First, confirm that both file names have // been entered. if(jtfFirst.getText().equals("")) { jlabResult.setText("First file name missing."); return; } if(jtfSecond.getText().equals("")) { jlabResult.setText("Second file name missing."); return; } // Open first file. try { f1 = new FileInputStream(jtfFirst.getText()); } catch(FileNotFoundException exc) { jlabResult.setText("First file not found."); return; } // Open second file. try { f2 = new FileInputStream(jtfSecond.getText()); } catch(FileNotFoundException exc) { jlabResult.setText("Second file not found."); return; } // Compare files. try { do { i = f1.read(); j = f2.read(); if(i != j) break; } while(i != -1 && j != -1); f1.close(); f2.close(); } catch(IOException exc) { jlabResult.setText("File Error"); return; } if(i != j) jlabResult.setText("Files are not the same."); else jlabResult.setText("Files compare equal."); } public static void main(String args[]) { // Create the frame on the event dispatching thread. SwingUtilities.invokeLater(new Runnable() { public void run() { new SwingFC(); } }); } } αν δεν ειναι Applet τοτε τι ειναι? τα Applets δεν ειναι τα παραθυρακια που βγενουν οταν πατησεις κατι σε μια ιστοσελιδα?
virxen75 Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 http://java.sun.com/docs/books/tutorial/deployment/applet/index.html διάβασε πρώτα τι είναι τα applets ---------- Προσθήκη στις 09:10 ---------- Προηγούμενο μήνυμα στις 07:50 ---------- try { do { i = f1.read(); j = f2.read(); if(i != j) break; } while(i != -1 && j != -1); η διαφορά στα while είναι εμφανής τα i,j διαβάζουν από το αρχείο και αλλάζουν συνεχώς αντιθετα με την τροποποίηση σου που είναι στατικές το !=-1 για τα i,j προφανώς είναι για τον έλεγχο αν έχει τελειώσει το αρχείο(έχει διαβαστεί όλο) κάτι που δεν σου χρειάζεται στην τροποποίηση που έκανες. επομένως στην τροποποίηση σου το do-while είναι παντελώς άχρηστο και λάθος.
PaidiThauma Δημοσ. 15 Ιανουαρίου 2010 Μέλος Δημοσ. 15 Ιανουαρίου 2010 εμ. διαβασα στο βιβλιο που εχω (Οδηγος της Java 2). οπως σας ειπα δεν εχω γνωσεις στο θεμα αυτο. (για αυτο και γραφω εδω) καθοδηγηστε με.. τι να κανω με την do? διαγραφη?
computeras13 Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 Ναι βγάλε τελείως την do while και κράτα μόνο το περιεχόμενο της. Όπως σου είπαν και πιο πάνω αυτή η do while αποσκοπεί στην ανάγνωση από αρχείο. Εσύ αφού έχεις σταθερές τιμές που διαβάζεις από κάπου δεν σου χρειάζεται και σου δημιουργεί και πρόβλημα
PaidiThauma Δημοσ. 15 Ιανουαρίου 2010 Μέλος Δημοσ. 15 Ιανουαρίου 2010 ναι.το εκανα πριν στειλεις το post και δουλεψε. ομως οταν τρεχω το Java creator (link computera13) και τρεχω τον κωδικα μου τα βγαζει ολα κανονικα. τιμες εισχωρω κανονικα. ομως το αποτελεσμα μου το βγαζει στο General Output! πως θα γινει να το κανω να βγενει στο ιδιο παραθυρο και απο κατω να εχει ενα κουμπι "Υπολογισε Ξανα" ? Μιπως φταιει το System.out.println();? και θελει κωδικα αλλον? Μιπως υπαρχει εντολη για Dynamic text το οποιο να εβαζα κατο απο το κουμπι και εκει να εκανα εισχςρισι καθε φορα το αποτελεσμα?
computeras13 Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 To System.out.print εκτυπώνει όπως λέει στο default output το οποίο κατεξοχήν είναι η κονσόλα. Για να το βάλεις να σου το τυπώνει μέσα στο παράθυρο που θες μπορείς να δημιουργήσεις ένα JLabel και να του εκχωρείς σαν αποτέλεσμα την τιμή της πράξης που θες. Τώρα το κουμπί υπολόγισε ξανά δεν βλέπω λόγο ύπαρξης (εκτός αν "σβήνεις" το κουμπί που κάνει αρχικά τον υπολογισμό) αφού με το αρχικό κουμπί που έχεις αν το πατήσεις πάλι θα εκτελεστεί ξανά η πράξη. ΥΓ: Δεν ξέρω αν υποστηρίζεται πλέον και από τον JCreator αλλά με το Netbeans σου βγάζει κάτω από κάθε αντικείμενο τι ιδιότητες υπάρχουν. Πιστεύω θα σε βοηθήσει αρκετά μιας και είναι η πρώτη σου επαφή.
virxen75 Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 > import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class SwingFC implements ActionListener { JTextField jtfFirst; JTextField jtfSecond; JTextField jtfThird; JTextField jtfResult; JTextField jtfResult2; JButton jbtnComp; JLabel jlabFirst, jlabSecond, jlabThird; JLabel jlabResult,jlabResult2; SwingFC() { JFrame jfrm = new JFrame("Compare Files"); jfrm.setLayout(new FlowLayout()); jfrm.setSize(240, 250); jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jtfFirst = new JTextField(14); jtfSecond = new JTextField(14); jtfThird = new JTextField(14); jtfResult = new JTextField(14); jtfResult.setEnabled(false); jtfResult2 = new JTextField(14); jtfResult.setEnabled(false); jtfFirst.setActionCommand("xrusos"); jtfSecond.setActionCommand("argiros"); jtfThird.setActionCommand("xalkos"); JButton jbtnComp = new JButton("Upologise"); jbtnComp.addActionListener(this); jlabFirst = new JLabel("Xrusos: "); jlabSecond = new JLabel("Argiros: "); jlabThird = new JLabel("Xalkos: "); jlabResult = new JLabel("APOTELESMA"); jlabResult2 = new JLabel("APOTELESMA 2"); jfrm.add(jlabFirst); jfrm.add(jtfFirst); jfrm.add(jlabSecond); jfrm.add(jtfSecond); jfrm.add(jlabThird); jfrm.add(jtfThird); jfrm.add(jlabResult); jfrm.add(jtfResult); jfrm.add(jlabResult2); jfrm.add(jtfResult2); jfrm.add(jbtnComp); jfrm.setVisible(true); } public void actionPerformed(ActionEvent ae) { int i=0, j=0, n=0; int k, ks, d; if(jtfFirst.getText().equals("")) { jtfResult.setText("Grapse Kati."); return; } if(jtfSecond.getText().equals("")) { jtfResult.setText("Grapse Kati."); return; } if(jtfThird.getText().equals("")) { jtfResult.setText("Grapse Kati."); return; } try { i = Integer.parseInt(jtfFirst.getText()); j = Integer.parseInt(jtfSecond.getText()); n = Integer.parseInt(jtfThird.getText()); } catch(NumberFormatException exc) { jlabResult.setText("Ti Piges Kai evales??"); return; } k=n+j+i; d=k/25; ks=k/15; jtfResult.setText(""+d); jtfResult2.setText(""+ks); } public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { new SwingFC(); } }); } }
computeras13 Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 Βρε άσε τον άνθρωπο να παιδευτεί λίγο
PaidiThauma Δημοσ. 15 Ιανουαρίου 2010 Μέλος Δημοσ. 15 Ιανουαρίου 2010 Καταλαβα τι μου ειπες. και δεν ειναι δυσκολο απο οτι μου φενετε. και ναι.θελω να παιδευτω αλλιως πως θα μαθω?χαχα. ---------- Προσθήκη στις 19:13 ---------- Προηγούμενο μήνυμα στις 19:11 ---------- computera13 Παλι Error βγαζει.:S οταν τρεχω JC. (δεν εκανα virus scan)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.