السلام عليكم إخواني .. عندي ثلاث مشاكل أرجو مساعدتكم ..
المشكلة الأولى هي :
اريد ان اقوم بتصميم Reports التقارير للمشروع , وعندما استدعي البيانات من السيرفر Server , لا يكون هناك مشاكل , لذلك تظهرهذه البيانات على شاشة Client بشكل جيد و لكن عندما أقوم بطباعة هذه البيانات باستخدام method تسمى print في الجافا يحدث معي Exception , لا أدري ما مشكلته , على الرغم انني قمت بتجريب هذه print على برنامج اخر لا يستخدم RMI , وقد قام بطباعة النتائج بنجاح لكن عندما استخدمته على برنامج RMI حدثت المشكلة . أظن ان المشكلة في policy
صورة Exception
على هذا الرابط >>صورة Exception

ملف Policy الذي أمتلكه هو يحتوي على هذا الكود .
grant {
permission java.net.SocketPermission "*:1024-65535",
"connect,accept";
permission java.net.SocketPermission "*:80", "connect";
permission java.lang.RuntimePermission "accessClassInPackage.sun.jdbc.odbc";
permission java.util.PropertyPermission "file.encoding", "read";
};الكود الذي يحدث فيه المشكلة
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == ID)
{
try
{
String sql = "SELECT * FROM Passenger where passenger_id='"+ID.getText()+"'";
java.util.Vector v = getData().search_for_pass(sql);
if(v.size()>0)
{
ID.setText(""+v.get(0));
Address.setText(""+v.get(4));
Date_Birth.setText(""+v.get(8));
Date_Issue.setText("");
FName.setText(""+v.get(1));
LName.setText(""+v.get(2));
MName.setText(""+v.get(3));
Material.setText(""+v.get(6));
Place_Birth.setText(""+v.get(5));
sex.setText(""+v.get(9));
Issues_By.setText(""+v.get(7));
}}
catch(Exception ex){}
}
if(e.getSource() == Print)
{
try
{
new printUtilities(jPanel1).print();
}catch(Exception ex)
{
ex.printStackTrace();
}}
}شرح الكود ..
أولا يتم استرجاع البيانات المراد طباعتها با ستخدام Method تسمى search_for_pass() موجود في Server , حيث تقوم بارجاع البيانات داخل Vector , ويتم ذلك بالضغط على textfield اسمه ID.
ثانيا يتم استخدام زر اسمه يقوم بعمل print طباعة ل Component التي تحتوي على هذه البيانات , حتى يقوم بطباعتها.
---------------------------------------------------------------------------------------------------------
المشكلة الثانية:
تشبه الأولى وهي عندما قمت باستدعاء احد الملفات من نوع swf (فلاش) حدث Exception اخر و هو على الشكل التالي ..
صورة Exception .
على هذا الرابط >> صورة Exception

جزء من الكود المسبب لهذه المشكلة .
luxor.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
Runtime runtime = Runtime.getRuntime();
runtime.exec ("cmd /C start file:///F:/GProject/projectjava/ fullcannon.swf ");
}
catch(Exception ee){
ee.printStackTrace();}
}
});3-) المشكلة الثالثة
هي كيف اقوم باخفاء شاشات ال دوس command prompt التي تظهر عندما اقوم بتشغيل البرنامج , وهي شاشة لتشغيل server واخرى ل rmicregistery و الثالثة ل client , علما باني استخدم batch file في هذه العملية . علما بان محتوى ملفات batch هي كالتالي ..
الملف الاول وهو :
startServer.bat
javac *.java rmic DataBaseServant start rmiregistry java -Djava.security.policy=rmipolicy.policy Server
الملف الثاني :
startClient.bat
java -Djava.security.policy=rmipolicy.policy DesktopTest pause