الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[تنبيه - عنوان غير مناسب : ]صحح آخطائي من فضلك

بدأه جافا تايم في 14 أبريل 2012 · 6 رد · 772 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لا اريد ان تكون أول مشاركة لي بهذا المستخدم عبارة عن طلب ولكني آمل من أعضاء هذا المنتدى بالرد ،، ما أطول عليكم:

اريد عمل برنامج بالجافا يقوم بقرائة احداثيات نقطتين p1 و p2 من المستخدم اي (x1,y1,x2,y2) ثم يقوم البرنامج برسم خط مستقيم line بين هاتين النقطتين

نص السؤال:

Write a program that takes as input two points p1 and p2 in the 2D space and draws the line segment [p1,p2] with labels showing the coordinates of each point. Each point is defined by its x− and y− coordinates.

حلي المتواضع و أؤكد آن فيه أخطاء كثيرة

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;

import javax.swing.JPanel;
import javax.swing.JFrame;

import java.util.Random;
import java.util.Scanner;

public class Points extends JPanel {
	 private int x1;
	 private int y1;
	 private int x2;
	 private int y2;
    public void paintComponent(Graphics g) {
            super.paintComponent(g); 
            g.drawLine(x1, y1, x2, y2);       
    }

    public static void main(String[] args) {

        Points points = new Points();
        JFrame frame = new JFrame("Points");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(points);
        frame.setSize(250, 200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        Scanner scan = new Scanner (System.in);

        System.out.print("Enter the value of X1 ");
        int x1 = scan.nextInt();
        System.out.print("Enter the value of X2 ");
        int x2 = scan.nextInt();
        System.out.print("Enter the value of Y1 ");
        int y1 = scan.nextInt();
        System.out.print("Enter the value of Y2 ");
        int y2 = scan.nextInt();

        Points p = new Points();
        p.paintComponent(x1,y1,x2,y2);

    }
}
#2

ملحوظة : انا عارف كيف اعمل البرنامج لو ما طلب مني الرسم بين النقطتين وهذا سهل جدا ولكن،،،خبرتي شبه معدومه في استخدام الواجهات الرسومية مثل GUI كما حاولت اني استخدمها ولم يحالفني الحظ

يعني يلزمني استخدم ادوات وواجهات رسومية لأمثل النقطتين على الاحداثيات السيني والصادي ولكن كيف؟؟؟

#3

أهلا بك أخي الكريم :)

محاولة جيدة .. :happy:

عدلت على الفئة Points :

import java.awt.Graphics; 
import javax.swing.JPanel;


public class Points extends JPanel {
         private int x1;
         private int y1;
         private int x2;
         private int y2;

         //Constructors 
         public Points(){}//without arguments

         public Points(int x1,int x2 , int y1 ,int y2){//with arguments
        	 this.setX(x1, x2);
        	 this.setY(y1, y2);

         }
    public  void paintComponent(Graphics g) {
            super.paintComponent(g); 
           g.drawLine(this.x1, this.y1, this.x2, this.y2);           
    }
    public void setX(int x1,int x2){
    	this.x1 = x1;
    	this.x2 = x2;
    }
    public void setY(int y1,int y2){
    	this.y1 = y1;
    	this.y2 = y2;
    }

}

أيضا أضفت فئة جديدة مسؤولة عن الـ GUI :

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;



public class frame extends JFrame {

private JTextArea x1 = new JTextArea("x1");
private JTextArea x2 = new JTextArea("x2");
private JTextArea y1 = new JTextArea("y1");
private JTextArea y2 = new JTextArea("y2");

private JButton draw = new JButton("draw");

	public frame() {
		//setLayout();
		final Points p = new Points();
		JPanel control = new JPanel(new GridLayout(7,0));
		control.add(new JLabel("Point 1:"));
		control.add(this.x1);
		control.add(this.y1);
		control.add(new JLabel("Point 2:"));
		control.add(this.x2);
		control.add(this.y2);
		draw.addActionListener((new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				int x_1  = Integer.parseInt(x1.getText());
				int x_2 =Integer.parseInt(x2.getText());
				int y_1 = Integer.parseInt(y1.getText());
				int y_2 = Integer.parseInt(y2.getText());
				p.setX(x_1, x_2);
				p.setY(y_1, y_2);
				p.repaint();
			}}));
		control.add(this.draw);

		p.setBackground(Color.WHITE);
		JPanel drwPanel = new JPanel(new GridLayout(0,2));
		drwPanel.add(p);
		drwPanel.add(control);
		add(drwPanel);
		show();
        setSize(400,400);
		setTitle("DROWING PANEL");
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		JFrame f = new frame();
	}

}

لو وقف معاك شي .. اسأل هنا ونحن بالخدمة :happy:

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 15 أبريل 2012 في 09:20

1

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#4

هل هذا هو الحل للسؤال؟

،لاني عملت Run وعبيت ارقام من عندي ثم ضغطت على draw ولم يظهر لي لا نقاط ولا خط كما في الصورة التالية

__--___.png

شكرا لك من أعماق قلبي

#5

post-231827-095107800 1334610473_thumb.p

نعم شغال معاي .. امسح القيم الموجودة في كل الـــ textField

تحياتي

المرفقات
desktop.png

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#6

نعم شغال معي ،، كنت ادخل قيم صغيرة من 1-9 وماكان يطلع شي او كان يطلع صغير جدا ما شفته

المهم حبيت انك تشوف السؤال كامل على اساس احاول في حل القسم الثاني من السؤال وانا في الطريق الصحيح علما ان موعد التسليم للقسم الاول من السؤال انتهى ولم اسلمه للاسف ولكن حبيت افهم ولو حاجه بسيطة منه لأن الماده هذي (analysis algorithm) ماده تفكير وممارسة

السطر الاخير هو الجزء الثاني

اقتباس
Write a program that takes as input two points p1 and p2 in the 2D space and draws the line segment [p1,p2] with labels showing the coordinates of each point. Each point is defined by its x− and y− coordinates.

You can use any programming language and any existing tool or code.

This is a preliminary stage for Phase 2 in which you will be asked to write a program that takes as input a graph G(V,E) and generates a route (path) between two vertices in G.

وشكرا لك الله يبارك لك وفيك

#7

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…