johnykim Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 Καλησπέρα παιδιά. Είμαι νέος στην java, και έχω ένα προβληματάκι σε μια άσκηση που κάνω τελευταία. Έχω φτιάξει 3 κλάσεις ,οι οποίες είναι οι παρακάτω: Κλάση Main >public class Main { // /** // * @param args // */ public static void main(String[] args) { // TODO Auto-generated method stub Ypologismos_Pa yp; yp=new Ypologismos_Pa(); yp.ypologismos(1); yp.printYpologismos(); } } Κλάση Υπολογισμός >public class Ypologismos_Pa { public int number=3; public int pa=1; int ypologismos(int i) { for(i=1;i<=number;i++) { pa=pa*i; } return pa; } void printYpologismos() { System.out.println(pa); } } Κλάση Visual >import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JFrame; import java.awt.Dimension; import javax.swing.JTextField; import java.awt.Rectangle; import javax.swing.JLabel; import javax.swing.JButton; public class Visual extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JLabel jLabel = null; private JLabel jLabel1 = null; private JTextField jTextField = null; private JTextField jTextField1 = null; private JButton jButton = null; private JButton jButton1 = null; /** * This is the default constructor */ public Visual() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(360, 205); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jLabel1 = new JLabel(); jLabel1.setBounds(new Rectangle(25, 76, 96, 16)); jLabel1.setText("Paragontiko"); jLabel = new JLabel(); jLabel.setBounds(new Rectangle(24, 32, 96, 16)); jLabel.setText("Number"); jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(jLabel, null); jContentPane.add(jLabel1, null); jContentPane.add(getJTextField(), null); jContentPane.add(getJTextField1(), null); jContentPane.add(getJButton(), null); jContentPane.add(getJButton1(), null); } return jContentPane; } /** * This method initializes jTextField * * @return javax.swing.JTextField */ private JTextField getJTextField() { if (jTextField == null) { jTextField = new JTextField(); jTextField.setBounds(new Rectangle(171, 26, 106, 20)); } return jTextField; } /** * This method initializes jTextField1 * * @return javax.swing.JTextField */ private JTextField getJTextField1() { if (jTextField1 == null) { jTextField1 = new JTextField(); jTextField1.setBounds(new Rectangle(172, 74, 106, 20)); } return jTextField1; } /** * This method initializes jButton * * @return javax.swing.JButton */ private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new Rectangle(19, 114, 107, 36)); jButton.setText("Ypologismos"); jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { [b]String a_str=jTextField.getText(); int number=Integer.parseInt(a_str); Ypologismos_Pa yp; yp=new Ypologismos_Pa(); yp.ypologismos(1); yp.printYpologismos(); int pa=yp.printYpologismos(); public String a_str2=Integer.toString(pa); jTextField1.setText(a_str2);[/b] System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed() } }); } return jButton; } /** * This method initializes jButton1 * * @return javax.swing.JButton */ private JButton getJButton1() { if (jButton1 == null) { jButton1 = new JButton(); jButton1.setBounds(new Rectangle(173, 114, 103, 34)); jButton1.setText("Exit"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.exit(0); System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed() } }); } return jButton1; } } // @jve:decl-index=0:visual-constraint="10,10" Το πρόβλημα είναι ότι δεν μπορώ να εμφανίσω την μεταβλητή "pa" στο jTextField1(είναι ο κώδικας με μπολτ στην visual class).Μετατρέπω την "pa" από int σε string, αλλά μάλλον δεν την βλέπει και βγάζει error.
MeTaXaS4 Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 βασικά μάλλον δεν έχεις κατανοήσει τον κώδικα σου, η Ypologismos_Pa έχει μία μέθοδο printYpologismos() και την χρησιμοποιείς να περάσεις δεδομένα σε int > void printYpologismos() { System.out.println(pa); } int pa=yp.printYpologismos(); δεν πρόκειτε να δουλέψει έτσι > public void actionPerformed(java.awt.event.ActionEvent e) { String a_str=jTextField.getText(); int number=Integer.parseInt(a_str); Ypologismos_Pa yp; yp=new Ypologismos_Pa(); //yp.ypologismos(1); //yp.printYpologismos(); //int pa=yp.printYpologismos(); int pa=yp.ypologismos(number); //public String a_str2=Integer.toString(pa); //jTextField1.setText(a_str2); jTextField1.setText(Integer.toString(pa)); System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed() } μάλλον ο κώδικας που ήθελες είναι αυτός, σου έχω σχολιάσει τα μη-σωστά ή άχρηστα που είχες βάλει και άλλαξα το 1 από το Ypologismos με το number που παίρνεις από το text
virxen75 Δημοσ. 29 Οκτωβρίου 2010 Δημοσ. 29 Οκτωβρίου 2010 public int number=3; public int pa=1; int ypologismos(int i) { for(i=1;i<=number;i++) { pa=pa*i; } return pa; } πολλά λάθη λογικής δοκίμασε έτσι > //public int number=3; //public int pa=1; int ypologismos(int number){ int i=0,pa=1; for(i=1;i<=number;i++) { pa=pa*i; } return pa; } Υ.Γ. στείλε σε ένα zip όλο το project σου στο netbeans να το δω να έχεις υπόψιν σου όμως ότι το πιο πάνω υπολογίζει μέχρι και το 12! μετά τα αποτελέσματα λόγω ακρίβειας είναι λάθος.
johnykim Δημοσ. 29 Οκτωβρίου 2010 Μέλος Δημοσ. 29 Οκτωβρίου 2010 Παιδιά ευχαριστώ λειτουργεί τώρα.Θα ήθελα όμως να εισάγει ο χρήστης το δικό του αριθμό.Γίνεται να βάλω κάποιο inputbox όπως στην visual basic; @virxen75 ,που να σου στείλω το project; edit : @virxen75, πολύ καλός ο κώδικας στην for! Τώρα προσπαθώ να καταλάβω πως το έκανες. edit2:Κατάλαβα τη βλακειούλα που έκανα..
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.