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

كيف يمكنني ان اجعل تزامن في هذا الكود ... ساعدوني لو سمحتم ؟!؟

بدأه MKSoft في 9 أغسطس 2008 · 16 رد · 1,213 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم احبائي //

إخواني الكرام .. اريد ان اجعل هناك تزامن , بحيث لا يتم تنفيذ الكود إلا بعد ان يقوم المستخدم بالضغط على Enter كالتالي :

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Simple extends JFrame/* implements Runnable*/{
	JTextArea jt;
	boolean isNotFinish = false;
	int x = 0;
	public Simple()
	{
		jt = new JTextArea(50,50);
		this.add(jt);
		setSize(400,400);
		setVisible(true);
		exe();
	}
	public void exe()
	{
		while(x < 10){
		jt.append("=============START=============\n");
			jt.addKeyListener
			(
				new KeyListener()
				{
					public void keyPressed(KeyEvent event){}
					public void keyReleased(KeyEvent event){
						if( event.getKeyCode() == KeyEvent.VK_ENTER ){
								jt.append("Company of GIFFAI 2007 . \n");
						}
					}
					public void keyTyped( KeyEvent event ){}
				}
			);
			jt.append("=============END=============\n");
			x++;
		}
//		Thread t = new Thread(this);
//		t.start();
	}
	public static void main(String[]args)
	{Simple s = new Simple();}

}

الفكرة في هذا الكود مفترض ان تتم بالشكل و الترتيب التالي //

1- في البداية يقوم البرنامج بطباعة الجملة التالية على الشاشة :

jt.append("=============START=============\n");

2- المشكلة تكمن هنا ... حيث اني اريد الان ان يقوم المستخدم بالضغط على Enter , وبعدها يتم طباعة الجملة التالية :

jt.append("Company of GIFFAI 2007 . \n");

3- بعد ذلك يتم طباعة الجملة التالية :

jt.append("=============END=============\n");

4- ان يتم تكرار العملية .

لكن للأسف لا يتم ماسبق .. و ذلك بسبب ان تنفيذ البرنامج لا ينتظر ان يقوم المسخدم بالضغط على Enter , و لذلك اريد ان يكون هنا تزامن في هذه العملية .

بحيث لا يتم تنفيذ باقي الجمل , إلا بعد ان يتم الضغط على Enter من قبل المستخدم ...

#2

لا يوجد لدى مترجم لكي أجرب مثالك ، ، لكن فقط في مثالك أدخل الجمله الأخيره في الشرط ، وبهذا سوف تتطبع الجملتين بعد أن يتحقق الشرط (عندما يتم الضغط على Enter) .

أي :

أطبع الجمله الأولى في داله البناء ، أو كما فعلت في الداله exe ،

أعمل Listener على الكيبورد ، وداخل هذا الـ Listener تحقق من الـ Event هو المفتاح Enter ، بعدها أطبع الجمله الثانيه والثالثه ،

ولا يوجد داعي للحلقه while ..

بالتوفيق ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#3

شكرا اخي الكريم على المشاركة .

لكن حقيقة انا اعرف هذا و لكن ليس هو ما اريده , حيث يصعب ذلك في حالة كان الكود اكبر و اضخم ,

حبث انه في الحقيقة ليس هذا المثال هو الذي اعمل عليه , وإنا اعمل على برنامج اكبر من ذلك بكثير , وعلى الرغم من ذلك انا جربته و لم تكن النتيجة كما اريد ,

حيث قام بطباعة الجملة التالية عدة مرات

 jt.append("=============START=============\n");

وبعدها استقبل من المستخدم الإشارة من الكيبورد.

النتيجة كانت كالتالي ::

=============START=============
=============START=============
=============START=============
=============START=============
=============START=============
=============START=============
=============START=============
=============START=============
=============START=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============
Company of GIFFAI 2007 . 
=============END=============
Company of GIFFAI 2007 . 
=============END=============
Company of GIFFAI 2007 . 
=============END=============
Company of GIFFAI 2007 . 
=============END=============
Company of GIFFAI 2007 . 
=============END=============
Company of GIFFAI 2007 . 
=============END=============
Company of GIFFAI 2007 . 
=============END=============

طبعا من المفترض ان تكون النتيجة بهذا الشكل ::

=============START=============
Company of GIFFAI 2007 . 
=============END=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============
=============START=============
Company of GIFFAI 2007 . 
=============END=============

تم تعديل هذه المشاركة بواسطة MKSoft في 9 أغسطس 2008 في 20:47

#4

شيل الجمله الأولى من الحلقه

jt.append("=============START=============\n");

ضعها قبل الحلقه أو في داله البناء ...

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#5

قمت بتعديل جديد :) ،

حسنا ، بهذا الشكل الجديد ، عليك أن تستخدم الـ Thread ..

سأجرب عندما أذهب للمنزل ... وأرد لك .

بالتوفيق ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#6

بعد تجربه بسيطه :

// Display Message in JTextArea

import javax.swing.JTextArea;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import java.awt.BorderLayout;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;

public class Demo
{
	public static void main (String args[])
	{
		MyApp app = new MyApp();
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		app.setVisible(true);
	}
}

class MyApp extends JFrame
{
	private JTextArea area;
	private volatile boolean state =  true;

	public MyApp()
	{
		setSize(400,400);
		area = new JTextArea(20,30);

		JPanel panel = new JPanel();
		panel.add(new JScrollPane(area));

		add(panel,BorderLayout.CENTER);

		area.addKeyListener(new MyListener());

		FirstThread ft = new FirstThread();
		ft.start();

	}


	private class MyListener extends KeyAdapter
	{
		public void keyPressed (KeyEvent event)
		{
			int keyCode = event.getKeyCode();

			if (keyCode == KeyEvent.VK_ENTER )
			{
				area.append("\n--------------- Hello -------------\n");
				area.append("============= END ==============\n\n");
				state = true;
			}

		}
	}

	private class FirstThread extends Thread
	{
		public void run ()
		{
			int x = 0;
			while ( x < 10 )
			{
				if ( state )
				{
					area.append("=============START===========");
					state = false;
					x++;
				}

				// here You Can Exit or Remove Key Listener
			}


		}
	}



}

الخوارزم كالأتي :

قم بتشغيل الـ Thread ، وظيفه هذا الـ Thread اضافه السطر الأول اذا كانت قيمه المتغير state صحيحه وبعدها يعكس الحاله حتى لا يطبع السطر الأول مره أخرى .. وسوف يكرر هذا الكلام 10 مرات ...

أثناء الضغط على المفتاح Enter سوف نقوم بطباعه الرسالتين الثانيه والثالثه ، ونغير قيمه state الى صحيحه ، حتى يتحرك الـ Thread ويطبع السطر الأول ..

بعد الأنتهاء من الحلقه ، عليك الخروج أو عمل Remove لهذا الـ Listener ، أو على أقل تقدير قم بعمل disable للـ JTextArea لأن المستخدم يمكنه من ضغط Enter (لأن الـ Listener ما زال يعمل) ..

بالتوفيق ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#7

سلام

الحل ممكن بتعديل بسيط للكود الي كتبته انت.

التعديل هو انك تخلي ال MainThread ينتظر الى اشارة من ال jt object بعد ما يطبع السطر الاول كما هو موضح بالكود التالي


import java.awt.event.*;
import javax.swing.*;

public class Simple extends JFrame{
JTextArea jt;

boolean isNotFinish = false;

int x = 0;

public Simple() {
jt = new JTextArea(50, 50);
this.add(new JScrollPane(jt));
setSize(400, 400);
setVisible(true);
exe();
}

public void exe() {

jt.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent event) {
}

public void keyReleased(KeyEvent event) {
synchronized (jt) {

if (event.getKeyCode() == KeyEvent.VK_ENTER) {
jt.append("Company of GIFFAI 2007 . \n");
jt.notifyAll();
}
}
}

public void keyTyped(KeyEvent event) {
}
});

synchronized (jt) {
while (x < 10) {
jt.append("=============START=============\n");

try {
jt.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}

jt.append("=============END=============\n");
x++;
}
}

}

public static void main(String[] args) {
Simple s = new Simple();
}

}
import java.awt.*;

#8

السلام عليكم

بارك الله فيكما اخواي Wajdy Essam و javaRocks&Rolls , وحقيقة انا استفدت كثيرا من مساعدتكما , فلكما الشكر بعد الله تعالى .

لكن اريد مساعدة من أخي javaRocks&Rolls ,,, لقد حاولت ان استخدم طريقتك في الكود التالي و لكن لم انجح , فأرجوا منك ان تساعدني فيها.

إليكم الكود //

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class newSimple extends JFrame{

	String [] value = {"A","B","C","D","E","F"};
	double [] sum = new double[6];
	JTextArea jt;
	int x = 0;
	public newSimple()
	{
		jt = new JTextArea(50,50);
		this.add(jt);
		setSize(400,400);
		setVisible(true);
		exe();
	}
	public void exe()
	{
		while(x < value.length)
		{
			String v = value[x];
			if(v.equals("A"))
			{
				sum[x] = (Math.random() * 10);
				jt.append("result["+x+"] := " + sum[x]+"\n");
			}
			else
			if(v.equals("B"))
			{
				sum[x] = (Math.random() * 80);
				jt.append("result["+x+"] := " + sum[x]+"\n");
			}
			else
			if(v.equals("C"))
			{
				sum[x] = (Math.random() * 500);
				jt.append("result["+x+"] := " + sum[x]+"\n\n");
				jt.append("You must press <<Enter>> to Complete..\n\n");
			}
			else
			if(v.equals("D"))
			{
				jt.addKeyListener(
					new KeyListener(){
						public void keyPressed(KeyEvent event){}
						public void keyReleased(KeyEvent event){
							if( event.getKeyCode() == KeyEvent.VK_ENTER ){
								jt.append("that's good, you are completing now..\n");
							}
						}
						public void keyTyped( KeyEvent event ){}
					}
				);
			}
			else
			if(v.equals("E"))
			{
				sum[x] = (Math.random() * 10) * sum[0];
				jt.append("result["+x+"] := " + sum[x]+"\n");
			}
			else
			if(v.equals("F"))
			{
				sum[x] = (Math.random() * 180);
				jt.append("result["+x+"] := " + sum[x]+"\n");
			}
			x++;
		}
	}
	public static void main(String[]args)
	{newSimple s = new newSimple();}
}

فكرة الكود كالتالي :-

هناك مصفوفتان كالتالي

String [] value = {"A","B","C","D","E","F"};

double [] sum = new double[6];

بعد ذلك يوجد جملة التكرار التي تؤشر على المصفوفة valueالسابقة ,

بحيث إذا وجدت A تقوم بعملية استخراج رقم عشوائي و تخزنة في الخلية المناظرة في المصفوفة sum ,

وهكذا على بقية الحروف , إلى ان تصل للحرف D , فعند وصولها للحرف D و يجب ان ينتظر البرنامج الضغط على Enter من قبل المستخدم , حتى يكمل باقي العملية ,,, لكن للأسف :S :S البرنامج في حالته هذه لا ينتظر الموافقة من قبل المستخدم من خلال الضغط Enter , و إنما يكمل التنفيذ بشكل مباشر .

ارجو المساعدة ,, وبارك الله فيكم .

#9

سلام

الحل هو بنفس الطريقة باتخلي الMain Thread ينتظر بعد ما يحصل المدخل D , وبعد ما يتم ضغط ال Enter يحصل notifyAll عشان يواصل التنفيذ

وهذا هو التعديل الي تحتاجة :


import java.awt.event.*;
import javax.swing.*;

public class newSimple extends JFrame{

String [] value = {"A","B","C","D","E","F"};
double [] sum = new double[6];
JTextArea jt;
int x = 0;
public newSimple()
{
jt = new JTextArea(50,50);
this.add(jt);
setSize(400,400);
setVisible(true);
exe();
}
public synchronized void exe()
{
while(x < value.length)
{
String v = value[x];
if(v.equals("A"))
{
sum[x] = (Math.random() * 10);
jt.append("result["+x+"] := " + sum[x]+"\n");
}
else
if(v.equals("B"))
{
sum[x] = (Math.random() * 80);
jt.append("result["+x+"] := " + sum[x]+"\n");
}
else
if(v.equals("C"))
{
sum[x] = (Math.random() * 500);
jt.append("result["+x+"] := " + sum[x]+"\n\n");
jt.append("You must press <<Enter>> to Complete..\n\n");
}
else
if(v.equals("D"))
{
jt.addKeyListener(
new KeyListener(){
public void keyPressed(KeyEvent event){}
public void keyReleased(KeyEvent event){
if( event.getKeyCode() == KeyEvent.VK_ENTER ){
jt.append("that's good, you are completing now..\n");

synchronized(newSimple.this){
newSimple.this.notifyAll();
}
}
}
public void keyTyped( KeyEvent event ){}
}
);

try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
else
if(v.equals("E"))
{
sum[x] = (Math.random() * 10) * sum[0];
jt.append("result["+x+"] := " + sum[x]+"\n");
}
else
if(v.equals("F"))
{
sum[x] = (Math.random() * 180);
jt.append("result["+x+"] := " + sum[x]+"\n");
}
x++;
}
}
public static void main(String[]args)
{newSimple s = new newSimple();}
}
import java.awt.*;

ملاحظة داخل الكود تبع ال keyReleased ال synchronized block لازم يكون على الكلاس الخرجي , وبما أن الكود داخل inner class فا إستخدمت newSimple.this عشان تعمل ال synchronization على hg outer class

تم تعديل هذه المشاركة بواسطة javaRocks&Rolls في 10 أغسطس 2008 في 08:55

#10

السلام عليكم اخواني , واخص ذكرا اخي javaRocks&Rolls .

انا مقتنع لأبعد الحدود بطريقتك التي شرحتها , وفعلا انا استخدمتها و نجحت , ولكنها فقط نجحت في حالة استخدام JtextArea ,

ولكن بعد ان قمت بتعديل بسيط , حيث اني استخدمت JtextPane بدلا من JTextArea , في هذه الحالة كان هناك تعليق في البرنامج , لا ادري كيف حله , فساعدني و جزاك ربي عني خير الجزاء.

الكود //

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class newSimple extends JFrame{

	String [] value = {"A","B","C","D","E","F"};
	double [] sum = new double[6];
	JTextPane jt;
	int x = 0;
	public newSimple()
	{
		jt = new JTextPane();
		this.add(jt);
		setSize(400,400);
		setVisible(true);
		try{exe();}
		catch(Exception ex){ex.printStackTrace();}
	}
	public synchronized void exe()throws Exception
	{
		while(x < value.length){
			String v = value[x];
			if(v.equals("A")){
				sum[x] = (Math.random() * 10);
				jt.getDocument().insertString(jt.getDocument().getLength(), "result["+x+"] := " + sum[x]+"\n",null);
			}
			else
			if(v.equals("B")){
				sum[x] = (Math.random() * 80);
				jt.getDocument().insertString(jt.getDocument().getLength(), "result["+x+"] := " + sum[x]+"\n",null);
			}
			else
			if(v.equals("C")){
				sum[x] = (Math.random() * 500);
				jt.getDocument().insertString(jt.getDocument().getLength(), "result["+x+"] := " + sum[x]+"\n\n", null);
				jt.getDocument().insertString(jt.getDocument().getLength(),"You must press <<Enter>> to Complete..\n\n",null);
			}
			else
			if(v.equals("D")){
				jt.addKeyListener(
					new KeyListener(){
						public void keyPressed(KeyEvent event){}
						public void keyReleased(KeyEvent event){
							if( event.getKeyCode() == KeyEvent.VK_ENTER ){
								try{
									jt.getDocument().insertString(jt.getDocument().getLength(),"that's good, you are completing now..\n",null);
								}
								catch(Exception e){e.printStackTrace();
								}
								synchronized(newSimple.this){
									 newSimple.this.notifyAll();
								 }
							}
						}
						public void keyTyped( KeyEvent event ){}
					}
				);
				try {
				 wait();
				   } catch (InterruptedException e) {
				 e.printStackTrace();
			   }  
			}
			else
			if(v.equals("E")){
				sum[x] = (Math.random() * 10) * sum[0];
				jt.getDocument().insertString(jt.getDocument().getLength(),"result["+x+"] := " + sum[x]+"\n",null);
			}
			else
			if(v.equals("F")){
				sum[x] = (Math.random() * 180);
				jt.getDocument().insertString(jt.getDocument().getLength(), "result["+x+"] := " + sum[x]+"\n",null);
			}
			x++;
		}
	}
	public static void main(String[]args)
	{newSimple s = new newSimple();}
}
#11

سلام

انا جربت أخر كود أضفتة انت وكان شغال بنفس الطريقة الي اشتغل فيها الكود الي قبلة

لكن متى بالظبط يحصل التعليق ؟

#12

السلام عليكم

اشكر تفانيك في مساعدتي اخي javaRocks&Rolls .

حقيقة اني اعمل على تصميم لغة برمجة مبسطة , واثناء الوصول للعملية التي تلزم الضغط على Enter فإنه يحدث تعليق , واحيانا يحدث اثناء بدء البرنامج . إليك الكود اخي الكريم.

package saja_language;
import java.util.Vector;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;

public class NewExe extends JFrame{
	private Vector genCode;
	private String [] c;
	private String output = "";

	private javax.swing.JScrollPane jScrollPane1;
	private javax.swing.JTextPane jTextPane1;
	private int i; 
	/**************************************************************************/
	public NewExe(Vector genCode){
		this.genCode = genCode;
		jScrollPane1 = new javax.swing.JScrollPane();
		jTextPane1 = new javax.swing.JTextPane();
		this.add(jTextPane1);
		setSize(500,500);
		setVisible(true);
		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
	}
	/**************************************************************************/
	public synchronized void execute(int index)throws Exception
	{
		if(genCode != null)
		{
			c = (String[])genCode.get(index);
			synchronized (jTextPane1) {

				while(!c[1].equalsIgnoreCase("-begin")){
					if(c[1].equals("print"))
					{
						index++;
						c = (String[])genCode.get(index);
						while(!c[1].equals("-print")){

							if(c[1].equals("x")){
								loop :{
									for(int i = 0; i < genCode.size(); i++){
									String a[] =(String[])genCode.get(i);
									if(a[1].equals("x")){
										output += a[2];
										break loop;
									}
								}
								}

							}
							else
							output += c[1].replaceAll("\"","");

							index++;
							c = (String[])genCode.get(index);
						}
						jTextPane1.getDocument().insertString(jTextPane1.getDocument().getLength(), output, null);
						output = "";
					}
					else
					if(c[1].equals("read"))
					{
						index++;
						i = index;
						c = (String[])genCode.get(index);
						jTextPane1.addKeyListener(
							new KeyListener(){
								public void keyPressed(KeyEvent event) {}
								public void keyReleased(KeyEvent event) {
									if( event.getKeyCode() == KeyEvent.VK_ENTER ){
										c[2] = "100";
										genCode.set(i,c);
										synchronized(NewExe.this){
								 		NewExe.this.notifyAll();
							 			}
									}
								}
								public void keyTyped( KeyEvent event ){}
							}
						);
						try {wait();} catch (InterruptedException e) {
							 e.printStackTrace();}
					}
					index++;
					c = (String[])genCode.get(index);
				}
			}
		}
	}
	public static void main(String[]args)
	{
		Vector v = new Vector();

		String [] d1 = new String[3];
		d1[0] = "1";		d1[1] = "begin";		v.addElement(d1);
		String [] d2 = new String[3];
		d2[0] = "2";		d2[1] = "print";		v.addElement(d2);
		String [] d3 = new String[3];
		d3[0] = "3";		d3[1] = "\"Hello..\""; 	v.addElement(d3);
		String [] d4 = new String[3];
		d4[0] = "4";		d4[1] = "-print";		v.addElement(d4);
		String [] d5 = new String[3];
		d5[0] = "5";		d5[1] = "read";			v.addElement(d5);
		String [] d6 = new String[3];
		d6[0] = "6";		d6[1] = "x";			v.addElement(d6);
		String [] d7 = new String[3];
		d7[0] = "7";		d7[1] = "print";		v.addElement(d7);
		String [] d8 = new String[3];
		d8[0] = "8";		d8[1] = "x";			v.addElement(d8);
		String [] d9 = new String[3];
		d9[0] = "9";		d9[1] = "-print";		v.addElement(d9);
		String [] d0 = new String[3];
		d0[0] = "10";		d0[1] = "-begin";		v.addElement(d0);

		NewExe ex = new NewExe(v);

		try{
			ex.execute(0);
		}
		catch(Exception exc){exc.printStackTrace();}
	}
}

طبعا شرح مبسط عنه ::

هناك مجموعة اوامر موجودة داخل Vector , يتم ارسالها حتى يتم تنفيذها , طبعا تبدأ الأوامر بكلمة begin و تنتهيبنفس الكلمة مضاف إليها إشارة ناقص .. هكذا -begin .

ايضا هنا امر print حيث يقوم بطباعة الجمل التى تليه غلى ان يصل إلى نهاية الجمل المطلوب طباعتها , حيث تنتهي بكلمة -print

ايضا هناك امر read , حيث عند الوصول لهذا الامر , من المفترض ان يقوم المستخدم بالضغط على Enter.

#13

سلام

يبدو أن المشكلة هي في السطر

jTextPane1.getDocument().insertString(jTextPane1.getDocument().getLength(), output, null);

مش عارف بالظبط ايش المشكلة , قد تكون في ال Document implementation الي يستخدمها الJTextPane

لاني لما ال JEditorPane ما حصلتش اي مشكلة

فا إستخدم ال JEditorPane بدل ال JTextPane , ما بتحتاج ان تغير اي method

والسطر التالي مش ضروري ممكن تبعدة

 synchronized (jTextPane1) {

تم تعديل هذه المشاركة بواسطة javaRocks&Rolls في 10 أغسطس 2008 في 23:47

#14

بارك الله فيك اخي javaRocks&Rolls , شكرا على كل المساعدة ..

#15

موضوع جميل وباستفيد منه جزء جزء حيث أني ما زلت مبتدئ جافا وحين حاولت تنفيذ أول كود وجدت compiation error بتقول أن

invalid method declaration; return type required

واعتقد دا معناه اننا كنا المفروض نضيفلها void

ولما ضيفتلها void حصل مشكلة لما جت تشتغل من main في السطر

Sample s = new Sample;

ودي رسالة الخطأ ياريت حد يشرحلي

C:\Program Files\Xinox Software\JCreator Pro\MyProjects\Tazamn\Tazamn.java:44: cannot find symbol

symbol : class Simple

location: class Tazamn

Simple s = new Simple();

شكرا علي مجهودكم الرائع

#16

أهلا وسهلا أخي محمد ..

الخطأ في الكود هو في كلمة Class , حيث يجب ان تكتب كالتالي class أي حرف صغير.

اي بدلا من //

public Class ....

قم بكتابة

public class ....
#17
MKSoft كتب:
أهلا وسهلا أخي محمد ..

الخطأ في الكود هو في كلمة Class , حيث يجب ان تكتب كالتالي class أي حرف صغير.

اي بدلا من //

public Class ....

قم بكتابة

public class ....

شكرا أخي الغالي لقد أكتشفت هذا الامر في أخر الليل بعد ما أرهقني التعب وأنا أتصفح الكثير من المواضيع داخل المنتدي شكرا لردك وأهتمامك سعيد بمعرفت حضرتك وأسف اذا كنت استعجلت وسألت

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

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

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

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

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