Προς το περιεχόμενο

askisi java


errika

Προτεινόμενες αναρτήσεις

Η java το επιτρεπει (γινεται compile), κατα την εκτέλεση πεταει ArrayIndexOutOfBoundsException.

 

σωστό αν το θέτεις έτσι... απτην άλλη αφου σου πετάει exception ουσιαστικά δεν σου επιτρέπει να κάνεις αυτο που προσπαθείς :P μάλλον αυτο θέλει να διαβάσει ο καθηγητής... καλα τέτοιες ερωτήσεις ειδικά για τμήμα διοίκησης επιχειρήσεων ειναι τραγικές... :blink:

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Για να μην ανοίγω νέο ποστάρω εδώ.

 

Μπορεί κάποιος να μου πει γιατί χτυπάει ενώ δεν χτυπάει error δεν εκτελείται όταν ανοίγει το παράθυρο;

Βγάζει μήνυμα στο netbeans:

 

run:
java.lang.NullPointerException
    at animball.AnimBall.init(AnimBall.java:44)
    at sun.applet.AppletPanel.run(AppletPanel.java:435)
    at java.lang.Thread.run(Thread.java:744)
BUILD SUCCESSFUL (total time: 3 seconds)

package animball;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import static java.lang.Math.pow;

public class AnimBall extends Applet
    implements Runnable, ItemListener, ActionListener {

    Image img;
    Image currentImg;
    Thread runner;
    int x;
    int y;
    int SpSel;
    int AnSel;
    String msg;
    Choice Speed=null;
    Choice Angle=null;
    Button Start;
    
    public void init() {
        setSize(800,600);
        setLayout(null);
        
        img=getImage(getCodeBase(), "ball.gif");
     
        Speed = new Choice();
        Speed.addItem("0");
        Speed.addItem("5");
        Speed.addItem("10");
        Speed.addItem("20");
        
        Angle = new Choice();
        Angle.addItem("0");
        Angle.addItem("30");
        Angle.addItem("45");
        Angle.addItem("60");
        Angle.addItem("90");
        
        Speed.setBounds(0, 20, 50, 30);
        Angle.setBounds(70, 20, 50, 30);
        Start.setBounds(170, 20, 50, 50);
        
        Start=new Button("Start");
        add(Speed);
        add(Angle);
        add(Start);
        
        Speed.addItemListener(this);
        Angle.addItemListener(this);
        Start.addActionListener(this);
       
    }

    public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }

    public void stop() {
        runner = null;
    }

    public void run() {
        for (int i = 0; i <=800 ; i+=SpSel) {
            double t=(i/(SpSel*Math.cos(AnSel)));
            x=i;            
            y= (600-(int)(SpSel*Math.sin(AnSel)*t-(1/2)*pow(t,2)));
            currentImg = img;
            repaint();
            pause(10);
        }
    }

     
    void pause(int time) {
        try {
            Thread.sleep(time);
        } catch (InterruptedException e) { }
    }


    public void paint(Graphics g) {
       if (currentImg != null)
           g.setColor(Color.white);
           g.drawImage(currentImg, x, y, this);    
}     
    
    public void itemStateChanged(ItemEvent e){
       SpSel = Integer.parseInt(Speed.getSelectedItem());
       AnSel = Integer.parseInt(Angle.getSelectedItem());       
   }
    
    public void actionPerformed(ActionEvent ae){
        if (ae.getSource()==Start){
            run();
        }
    }
}



Ευχαριστώ.

Επεξ/σία από heartless
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Ναι αλλα αναφερεται σε λογικες παραστάσεις.

public class HelloWorld{

     public static void main(String []args){
         boolean a=true;
         boolean b=false;
         boolean c=a&b;
        System.out.println(c);
     }
}

Σωστός και οι bitwise δεν κάνουνε short-circuiting.

Από so:

short-circuiting (x != 0) && (1/x > 1) SAFE

not short-circuiting (x != 0) & (1/x > 1) NOT SAFE

 

Στην πρώτη περίπτωση μόνο αν το x!=0 είναι true τότε θα γίνει evaluate το 1/x > 1 ενώ στην δεύτερη θα γίνει ακόμα και όταν είναι false. Οπότε θεωρώ το 7 σωστό.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...