ABA


"|JAVA| עזרה בקוד מאוד מאוד פשוט"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10895 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10895
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   23:59   20.09.12   
אל הפורום  
  |JAVA| עזרה בקוד מאוד מאוד פשוט  
 
   אהלן חברה תשמעו אני מאוד מתחיל ב-JAVA.
אני מנסה כרגע לכתוב CLASS שאחראי על יצירת 12 עיגולים, אחד בתוך השני, במרכז המסך. העיגול הראשון צריך להיות בעל רדיוס של 10 פיקסלים, וכל עיגול נוסף צריך להיות בעל רדיוס גדול יותר ב-10 פיקסלים.

הקוד שכתבתי אמור לעשות בדיוק את זה אבל הוא יוצר עיגולים עם רדיוס שונה לגמרי ממה שכתבתי, ובמיקום שונה לגמרי ממה שכתבתי.

מי עוזר לי פה שניה?

הנה הקוד (שני class) :


// class GUIcircles
import java.awt.Graphics;
import javax.swing.JPanel;

public class GUIcircles extends JPanel {
public void paintComponent( Graphics g )
{
// Call paintComponent to ensure the panel displays correctly
super.paintComponent( g );

int width = getWidth(), height = getHeight();

for( int radius=10; radius<=120; radius+=10)
g.drawOval( width/2-radius, height/2-radius, width/2+radius, height/2+radius);
}
}

-----------

// class GUIcirclesTest
import javax.swing.JFrame;

public class GUIcirclesTest {
public static void main( String args )
{
// Create a panel that contains our drawing
GUIcircles panel = new GUIcircles();

// Create a new frame to hold the panel
JFrame application = new JFrame();

// Set the frame to exit when it is closed
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

application.add( panel ); // Add the panel to the frame
application.setSize( 250, 250); // Set the size of the frame
application.setVisible( true ); // Make the frame visible
}
}

תודה מראש!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תראה asco88  21.09.12 00:13 1
     שפיץ אתה! liranh  21.09.12 00:17 2
         בפרסום אשכול, מצד ימין יש לך ''המרת סוגריים מרובעים''. זה בדיוק בשביל זה. Ice Cold  21.09.12 00:26 3
             מצויין תודה אחי. עוד שאלה קטנה מאחד מכם אם אפשר! liranh  21.09.12 00:40 4
                 יש לך פה בעצם לולאה אינסופית asco88  21.09.12 00:59 5
                     WOW נכון תודה רבה! liranh  21.09.12 01:07 6
                         בבקשה asco88  21.09.12 07:08 7
                             תותח:) יוחאי 24.09.12 14:35 8

       
asco88 
חבר מתאריך 17.6.04
26757 הודעות, דרג אמינות חבר זה
   00:13   21.09.12   
אל הפורום  
  1. תראה  
בתגובה להודעה מספר 0
 
הפרמטרים של drawOval הם x, y, width, height.
אתה בחרת נכון את נקודות X ו Y, אבל שים לב שכשבחרת רוחב, הרוחב והגובה לא אמורים להיות תלויים בגודל החלון, ולכן הפרמטרים של גובה ורוחב אמורים להיות שניהם הרדיוס כפול 2 כלומר הקוטר.
שים לב אגב, שבפונקצייה main אתה צריך להשתמש ב String כלומר מערך, ולא בString.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   00:17   21.09.12   
אל הפורום  
  2. שפיץ אתה!  
בתגובה להודעה מספר 1
 
   עבר עריכה לאחרונה בתאריך 21.09.12 בשעה 00:17:30 על-ידי Ice Cold (מנהל הפורום)
 
צדקת לגבי הdrawOval.
לגבי הmain אני יודע - הפורום הסיר לי את הסוגריים המרובעים מהקוד

תודה רבה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק, 36 נקודות
   00:26   21.09.12   
אל הפורום  
  3. בפרסום אשכול, מצד ימין יש לך ''המרת סוגריים מרובעים''. זה בדיוק בשביל זה.  
בתגובה להודעה מספר 2
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   00:40   21.09.12   
אל הפורום  
  4. מצויין תודה אחי. עוד שאלה קטנה מאחד מכם אם אפשר!  
בתגובה להודעה מספר 3
 
   עידכנתי את הקוד כדי שיאפשר למשתמש להגדיר את מספר העיגולים, אבל משום מה זה לא עובד! מישהו?


// Class GUIcircles
import java.awt.Graphics;
import javax.swing.JPanel;

public class GUIcircles extends JPanel
{
private int number;

public GUIcircles( int numberOfCircles)
{
number = numberOfCircles;
}

public void paintComponent( Graphics g )
{
super.paintComponent( g );

int width = getWidth(), height = getHeight();

for( int radius=10; radius<=number*radius; radius+=10)
g.drawOval( width/2-radius, height/2-radius, radius*2, radius*2);
}
}

//Class GUIcirclesTest
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class GUIcirclesTest {
public static void main( String[] args )
{
String input = JOptionPane.showInputDialog("Enter number of circles to draw");
int number = Integer.parseInt( input );
// Create a panel that contains our drawing
GUIcircles panel = new GUIcircles(number);

// Create a new frame to hold the panel
JFrame application = new JFrame();

// Set the frame to exit when it is closed
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

application.add( panel ); // Add the panel to the frame
application.setSize( 250, 250); // Set the size of the frame
application.setVisible( true ); // Make the frame visible
}
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
asco88 
חבר מתאריך 17.6.04
26757 הודעות, דרג אמינות חבר זה
   00:59   21.09.12   
אל הפורום  
  5. יש לך פה בעצם לולאה אינסופית  
בתגובה להודעה מספר 4
 
כי על כל רדיוס שנוצר בכל סיבוב, אתה יוצר גבול חדש, כלומר הגבול גדל עם הרדיוס.
לכן אתה חייב לקבוע לפני תחילת הלולאה כמה יהיו, ומה הרדיוס.
למשל

int r= 10;
int max = radius * number;

ואז בלולאה תכניס את מקס בתור הגבול של הלולאה, ואת הרדיוס בתור המספר שגדל


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק, 2 נקודות
   01:07   21.09.12   
אל הפורום  
  6. WOW נכון תודה רבה!  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
asco88 
חבר מתאריך 17.6.04
26757 הודעות, דרג אמינות חבר זה
   07:08   21.09.12   
אל הפורום  
  7. בבקשה  
בתגובה להודעה מספר 6
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
יוחאי
חבר מתאריך 30.12.15
163 הודעות, דרג אמינות חבר זה
   14:35   24.09.12   
אל הפורום  
  8. תותח:)  
בתגובה להודעה מספר 7
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net