Acrobase  

Καλώς ήρθατε στην AcroBase.
Δείτε εδώ τα πιο πρόσφατα μηνύματα από όλες τις περιοχές συζητήσεων, καθώς και όλες τις υπηρεσίες της AcroBase.
H εγγραφή σας είναι γρήγορη και εύκολη.

Επιστροφή   Acrobase > Υπολογιστές και Τεχνολογία > Πληροφορική και Επικοινωνία
Ομάδες (Groups) Τοίχος Άρθρα acrobase.org Ημερολόγιο Φωτογραφίες Στατιστικά

Notices

Δεν έχετε δημιουργήσει όνομα χρήστη στην Acrobase.
Μπορείτε να το δημιουργήσετε εδώ

Απάντηση στο θέμα
 
Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 31-05-08, 09:39
Το avatar του χρήστη Gildor
Gildor Ο χρήστης Gildor δεν είναι συνδεδεμένος
High Elf
 

Τελευταία φορά Online: 08-05-17 14:17
Φύλο: Δεν έχω αποφασίσει ακόμα
Η διαθεσή μου τώρα:
εχω ενα προβλημα σε προγραμμα Τζαβα

Πριν καιρο διαβαζα ενα βιβλιο της Τζαβα και ειχε μεσα ενα προγραμματακι. Το εγραψα.

Μετα ειπα να κανω μια προσθηκη

Εψαξα, το μελετησα, την εκανα

Και ομως, δε λειτουργει!! Και απο οσες οπτικες γωνιες και αν την ειδα, οσες μετατροπες κι αν εκανα, ειναι σωστη. Δε βρηκα τιποτα που θα μπορουσε να μπερδεψει το προγραμμα

Αν ανεβαζα το listing εδω θα μπορουσε καποιος να μου πει τι δεν παει καλα; (ειναι πολυ μικρο ουτως η αλλως)
__________________
Υπάρχουν σε όλα δύο απόψεις...
Αυτή που λέω εγώ, και η σωστή!
Απάντηση με παράθεση
  #2  
Παλιά 31-05-08, 10:55
avel Ο χρήστης avel δεν είναι συνδεδεμένος
Mέλος
 

Φύλο: Δεν έχω αποφασίσει ακόμα
Αρχική Δημοσίευση από Gildor Εμφάνιση μηνυμάτων
Αν ανεβαζα το listing εδω θα μπορουσε καποιος να μου πει τι δεν παει καλα;
Ίσως.

....
Απάντηση με παράθεση
  #3  
Παλιά 31-05-08, 12:48
Το avatar του χρήστη Gildor
Gildor Ο χρήστης Gildor δεν είναι συνδεδεμένος
High Elf
 

Τελευταία φορά Online: 08-05-17 14:17
Φύλο: Δεν έχω αποφασίσει ακόμα
Η διαθεσή μου τώρα:
Ναναι καλα ο ανθρωπος τοτε!

Λοιπον, αυτο εδω οπτικοποιει μια συναρτηση. Ειχα προσθεσει μια μπαρα η οποια οταν την πειραζα αλλαζε τη συχνοτητα της καμπυλης και οταν δουλεψε χαρηκα παρα πολυ! Κατα τον ιδιο τροπο προσθεσα και αλλη μπαρα η οποια θα αλλαζε το υψος της καμπυλης.

Και αυτο ειναι που δε λειτουργει.

Το παρακατω ειναι ενα snapshot των δοκιμων που εκανα (το τελευταιο χρονολογικα που βρηκα) και δε θυμαμαι σε τι σταδιο το ειχα αφησει


Κώδικας:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class program extends Applet implements AdjustmentListener{

	int fwidth, fheight,i,a;
	private Scrollbar hor,ver;

	public void init()
	{
	 	Dimension appletSize=this.getSize();
		fwidth=appletSize.width-10;
		fheight=appletSize.height-10;
		hor=new Scrollbar(Scrollbar.HORIZONTAL,0,200,0,255);
		ver=new Scrollbar(Scrollbar.VERTICAL,0,200,0,255);
		add(hor);
		add(ver);
		hor.addAdjustmentListener(this);
		ver.addAdjustmentListener(this);
	}
	public void paint(Graphics g)
	{
		int i, y1, y11;
		g.drawLine(0,fheight/2,fwidth, fheight/2);
		y1=calcFunct(0);
		for (i=0 ; i < fwidth ; i++)
		{
			y11=calcFunct(i+1);
			g.drawLine(i,y1,i+1,y11);
			y1=y11;
		}
	}
	private int calcFunct(int xcor)
	{
		double xmin=-3.14-i;
		double xmax=3.14+i;
		double ymin=-1.0-a;
		double ymax=1.0+a;
		double x,y;
		int ycor;
		x=(xcor*(xmax-xmin)/fwidth)+xmin;
		y=Math.sin(x);
		ycor=(int)(((y-ymin)*fheight)/(ymax-ymin));
		ycor=fheight-ycor;
		return ycor;
	}

	public void adjustmentValueChanged (AdjustmentEvent e,r){
		i=e.getValue();
		a=r.getValue();
		repaint();
		}
}
__________________
Υπάρχουν σε όλα δύο απόψεις...
Αυτή που λέω εγώ, και η σωστή!

Τελευταία επεξεργασία από το χρήστη Gildor : 31-05-08 στις 16:28
Απάντηση με παράθεση
  #4  
Παλιά 31-05-08, 15:11
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Το paint() method σου σταματάει βάρβαρα στη μέση της πρώτης γραμμής ενός for loop, και λείπει όλο το loop και αρκετά ακόμα συντακτικά κομμάτια του υπόλοιπου class. Το πρόγραμμα δεν υπάρχει περίπτωση να κάνει parse ως έχει.
__________________
www.bedroomlan.org
Απάντηση με παράθεση
  #5  
Παλιά 31-05-08, 16:30
Το avatar του χρήστη Gildor
Gildor Ο χρήστης Gildor δεν είναι συνδεδεμένος
High Elf
 

Τελευταία φορά Online: 08-05-17 14:17
Φύλο: Δεν έχω αποφασίσει ακόμα
Η διαθεσή μου τώρα:
Φυσικα και δεν ειναι αυτο ολο το προγραμμα (δεν ειμαι ΤΟΣΟ ασχετος ) απλα φαινεται η χαρακτηρας < δημιουργουσε καποιο προβλημα στο [code] και διεκοπτε το κειμενο

Τωρα που αφησα κενο, φαινεται ολος ο κωδικας
__________________
Υπάρχουν σε όλα δύο απόψεις...
Αυτή που λέω εγώ, και η σωστή!
Απάντηση με παράθεση
  #6  
Παλιά 31-05-08, 17:03
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Εμένα μου δουλεύει πάντως, μετά από μια μικρή αλλαγή, αφού κοίταξα τη σχετική online τεκμηρίωση (δεν ασχολούμαι πολύ με Java):

Κώδικας:
public void adjustmentValueChanged (AdjustmentEvent e){
    i=e.getValue();
    //a=r.getValue();
    repaint();
}
Βλέπω και μερικά ζητήματα, πχ χρησιμοποιείς το i και ως loop dummy variable και ως attribute, με δυνητικά φρικτά αποτελέσματα. Οι περισσότεροι αναγνώστες του κώδικά σου (κι εγώ το ίδιο) περιμένουν το i να είναι τοπική μεταβλητή και μπερδεύονται.

Θα επανέλθω με μια-δυο διορθώσεις ώστε να δουλεύει σωστά, απ'όσο καταλαβαίνω.
__________________
www.bedroomlan.org
Απάντηση με παράθεση
  #7  
Παλιά 01-06-08, 14:26
Το avatar του χρήστη Morgul
Morgul Ο χρήστης Morgul δεν είναι συνδεδεμένος
Άσωτος διαχειριστής
 

Τελευταία φορά Online: 26-03-22 21:02
Φύλο: Δεν έχω αποφασίσει ακόμα
Να το «πειραγμένο» πρόγραμμα. Οι αλλαγές, απ'όσο μπορώ να θυμηθώ από χτες:

Άλλαξα τα ονόματα των attributes i, a στα κάπως πιο περιγραφικά xrange, yrange.

Άλλαξα το 3.14 σε Math.PI που είναι ο μόνος σωστός τρόπος να αναφερθείς στο π.

Όλο σου το πρόγραμμα είναι ένας AdjustmentListener ο οποίος δέχεται σχετικά events κι από τα δύο Scrollbars. Η αρχική έκδοση δεν είχε κανένα τρόπο να διαχωρίσει μεταξύ των δύο, οπότε κάθε αλλαγή στο ένα έβαζε την τιμή του αλλαγμένου scrollbar και στο i και στο a. Κοιταξα την τεκμηρίωση της Java (δεν τα ξέρω αυτά τα πράγματα του σατανά) και βρήκα το AdjustmentEvent.getAdjustable() method που επιστρέφει ένα reference στο Adjustable (=Scrollbar) από το οποίο προήλθε το event. Αν το event είναι από το οριζόντιο Scrollbar, με ένα if αλλάζουμε το xrange. Αντίστοιχα και με το yrange. Αυτή είναι η μόνη ουσιαστική διαφορά στο πρόγραμμα.

Προσέθεσα κενά όπου χρειάζονται για να βελτιώσουν την αναγνωσιμότητα του κώδικα.

Είναι πιο κοντά σ'αυτό που ήθελες να κάνει τώρα;

Κώδικας:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class program extends Applet implements AdjustmentListener
{
    int       fwidth;
    int       fheight;
    int       xrange;
    int       yrange;
    Scrollbar hor, ver;
    
    public void init()
    {
        Dimension appletSize = this.getSize();
        fwidth = appletSize.width -10;
        fheight = appletSize.height - 10;
        hor = new Scrollbar (Scrollbar.HORIZONTAL, 0, 200, 0, 255);
        ver = new Scrollbar (Scrollbar.VERTICAL, 0, 200, 0, 255);
        add (hor);
        add (ver);
        hor.addAdjustmentListener (this);
        ver.addAdjustmentListener (this);
    }

    public void paint(Graphics g)
    {
        int i, y1, y11;
        g.drawLine (0, fheight/2,fwidth, fheight/2);
        y1=calcFunct (0);
        for (i = 0; i < fwidth; i++)
            {
                y11=calcFunct (i + 1);
                g.drawLine (i, y1, i + 1, y11);
                y1 = y11;
            }
    }

    private int calcFunct(int xcor)
    {
        double xmin = -Math.PI - xrange;
        double xmax = Math.PI + xrange;
        double ymin = -1.0 - yrange;
        double ymax = 1.0 + yrange;
        double x,y;
        int ycor;
        x = (xcor * (xmax - xmin) / fwidth) + xmin;
        y = Math.sin (x);
        ycor = (int)(((y - ymin) * fheight) / (ymax - ymin));
        ycor = fheight - ycor;
        return ycor;
    }
    
    public void adjustmentValueChanged (AdjustmentEvent e)
    {
        Adjustable which = e.getAdjustable();
        // Horizontal changed.
        if (which == hor)
            xrange = e.getValue();
        // Vertical changed.
        else if (which == ver)
            yrange = e.getValue();
        repaint();
    }
}
__________________
www.bedroomlan.org
Απάντηση με παράθεση
Απάντηση στο θέμα


Συνδεδεμένοι χρήστες που διαβάζουν αυτό το θέμα: 1 (0 μέλη και 1 επισκέπτες)
 
Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι σε λειτουργία

Που θέλετε να σας πάμε;


Όλες οι ώρες είναι GMT +3. Η ώρα τώρα είναι 00:56.



Forum engine powered by : vBulletin Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.