الوقت/التاريخ الآن هو الأربعاء مايو 01, 2024 9:52 pm

3 نتيجة بحث عن joptionpane

EgyDialog مربعات الحوار البديلة عن joptionpane بتصاميم رائعة وتاثير الحركة FadeIn_Out,Slide

أهلا وسهلا بكم

نافذة الحوار هي نافذة فرعية مستقلة تهدف إلى حمل إشعار للمستخدم  بعيدًا عن نافذة التطبيق الرئيسية. تقدم معظم مربعات الحوار أنواع عديدة من الرسائل كرسالة خطأ أو تحذير أو معلومات للمستخدم و توفر لغة الجافا الفئة #joptionpane لتنفيذ تلك المهمة

الوسم joptionpane على المنتدى منتدى مصر التقني Java-joptionpane1


لكن تلك الفئة تقدم مربع حوارى يفتقد الشكل و التصميم العصري الذى يجارى التغير فى لغات البرمجة الاخري مثل jQuery لذلك عكف مطورى منتدى مصر التقني على انشاء مربع حوارى جديد تم تسميته #EgyDialog ليكون بديل عن مربعات الحوار التقليدية joptionpane

أولا :تعرف على الفئة #EgyDialog

الفئة #EgyDialog هى أحد الفئات الرئسية من المكتبة #EgySwingX الجارى انشائها حاليا من مطورى منتدى مصر التقني لانشاء عناصر رسومية جذابة لمطورى javaSwing ...تستخدم الفئة #EgyDialog لعرض رسائل التنبية باشكال و تاثيرات حركة مختلفة وذلك على النحو التالى :

1_توفر لك الفئة أربعة أنواع من الرسائل وهى :
     

  • success
  • info      
  • warning     
  • error 
          

2_توفر لك ثلاثة انماط أو ثلاثة تصاميم وهى على النحو التالى :
 

  • Style1
  • Style2   
  • Style3         
     


إنظر للصور الموضحة أدناه :
الوسم joptionpane على المنتدى منتدى مصر التقني Syle110
الوسم joptionpane على المنتدى منتدى مصر التقني Syle210
الوسم joptionpane على المنتدى منتدى مصر التقني Syle310

3_توفر لك ثلاثة أنواع من تاثير الحركة وهى :


  • تأثر التلاشى FadeIn_Out
  • تاثير الانزلاق الرئسي V_Slide  
  • تأثير الانزلاق الافقي H_Slide 


4_ توفر لك خمس أمكان من الشاشة لاتجاة الظهور وهى :


  • TopRight
  • TopLeft
  • Center
  • BottomRight
  • BottomLeft


ثانيا :كيفية الاستخدام 

الآن ، آمل أن يكون لديك معرفة كافية بالفئة #EgyDialog من المقدمة أعلاه ، ولكن من أجل الفهم ، سنتناول الأساسيات بالشرح وكيفية الاستخدام وذلك على النحو التالى :

1_يجب تنزيل الملف EgySwingX_V1.jar المرفق و إدراجة لمشروعك 


2_ إتسيراد الفئات اللازمة للعمل وذلك باستخدام الشفرة التالية :

الكود:

import EgySwing.Alert.EgyDialog;
import EgySwing.Alert.EgyDialog.Animation;
import EgySwing.Alert.EgyDialog.Message_Style;
import EgySwing.Alert.EgyDialog.Message_Type;
import EgySwing.Alert.EgyDialog.Position;



3_ يمكن استخدام أحد المشيدات التالية لانشاء المربع الحوارى كما يحلوا لك وذلك على النحو التالى :


الكود:
public EgyDialog(String message)


يقوم هذا المشيد بانشاء مربع حوارى يحتوي على نص رسالة و يظهر فى منتصف الشاشة بدون اى تاثير للحركة وياخذ النمط الرئيسي للرسالة كما فى الشكل التالى :

الوسم joptionpane على المنتدى منتدى مصر التقني Unt10


الكود:
public EgyDialog(String message ,String Title)


يقوم هذا المشيد بانشاء مربع حوارى يحتوي على نص رسالة , عنوان للرسالة و يظهر فى منتصف الشاشة بدون اى تاثير للحركة وياخذ النمط الرئيسي للرسالة كما فى الشكل أعلاه 


الكود:
EgyDialog(String message ,Message_Style s,Message_Type type,Position p)



يقوم هذا المشيد بانشاء مربع حوارى يحتوي على نص رسالة مع ثلاثة باراميترات على النحو التالى :

الباراميتر الاول :#Message_Style وهى الطريقة التى تحدد نمظ و مظهر الرسالة و تاخذ الدوال التالية :

الكود:
Message_Style.Style1;
Message_Style.Style2;
Message_Style.Style3


 
الباراميتر الثاني :#Message_Type وهى الطريقة التى تحدد رمز الرسالة و تاخذ الدوال التالية :
الكود:
Message_Type.Error;
Message_Type.Info;
Message_Type.Warning;
Message_Type.Success;




الباراميتر الثالث :#Position و هى الطريقة التى تحدد موضع ظهور الرسالة وتاخذ الدوال التالية :
الكود:
Position.TopRight;
Position.TopLeft;
Position.Center;
Position.BottomRight;
Position.BottomLeft;



الكود:
public EgyDialog(String message ,Message_Style s,Message_Type type,Position p,Animation Animation,boolean AutoHide)


يقوم هذا المشيد بانشاء مربع حوارى يحتوي على نص رسالة مع خمسة باراميترات على النحو التالى :

الباراميتر الاول :#Message_Style وهى الطريقة التى تحدد نمظ و مظهر الرسالة.
الباراميتر الثاني :#Message_Type وهى الطريقة التى تحدد رمز الرسالة .
الباراميتر الثالث :#Position و هى الطريقة التى تحدد موضع ظهور الرسالة على النافذة .
الباراميتر الرابع :#Animation و هى الطريقة التى تحدد تاثير الحركة على ظهور واخفاء الرسالة وتاخذ القيم التالية :
الكود:

Animation.FadeIn_Out;
Animation.V_Slide;
Animation.H_Slide; break


الباراميتر الخامس :#AutoHide و هى قيمة منطقية تحدد الاخفاء التلقائى للرسالة من عدمه ...القيمة الافتراضية true


الكود:
public EgyDialog(String message ,Message_Style s,Message_Type type,Position p,Animation Animation,boolean AutoHide,int delay)



يقوم هذا المشيد بانشاء مربع حوارى يحتوي على نص رسالة مع خمسة باراميترات على النحو التالى :

الباراميتر الاول :#Message_Style وهى الطريقة التى تحدد نمظ و مظهر الرسالة.
الباراميتر الثاني :#Message_Type وهى الطريقة التى تحدد رمز الرسالة .
الباراميتر الثالث :#Position و هى الطريقة التى تحدد موضع ظهور الرسالة على النافذة .
الباراميتر الرابع :#Animation و هى الطريقة التى تحدد تاثير الحركة على ظهور واخفاء الرسالة
الباراميتر الخامس :#AutoHide و هى قيمة منطقية تحدد الاخفاء التلقائى للرسالة من عدمه ...القيمة الافتراضية true
الباراميتر السادس :#delay و هى قيمة رقمية int تحدد الفترة الزمنية لابقاء ظهور الرسالة  ...القيمة الافتراضية 3000 ملى ثانية.

و توجد مشيدات اخرى يمكنك الكشف عنها بنفسك و اليكم مثال كامل على النحو التالى :

الكود:

import EgySwing.Alert.EgyDialog;
import EgySwing.Alert.EgyDialog.Animation;
import EgySwing.Alert.EgyDialog.Message_Style;
import EgySwing.Alert.EgyDialog.Message_Type;
import EgySwing.Alert.EgyDialog.Position;

public class NewJFrame extends javax.swing.JFrame {

    Message_Style S;
    Message_Type T;
    Animation An;
    Position P;
    boolean AutoHide;
  
    public NewJFrame() {
        initComponents();
    }

  
 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
    
         switch (MESSAGE_Type.getSelectedIndex()) {
            
             case 0:T=Message_Type.Error; break;
             case 1:T=Message_Type.Info; break;
             case 2:T=Message_Type.Warning; break;
             case 3:T=Message_Type.Success; break;  
             }
        
         switch (Style_Type.getSelectedIndex()) {
            
             case 0:S=Message_Style.Style1; break;
             case 1:S=Message_Style.Style2; break;
             case 2:S=Message_Style.Style3; break;
            
             }
         switch (Position_Type.getSelectedIndex()) {
            
             case 0:P=Position.TopRight; break;
             case 1:P=Position.TopLeft; break;
             case 2:P=Position.Center; break;
             case 3:P=Position.BottomRight; break;
             case 4:P=Position.BottomLeft; break;
             }
        
          switch (Animation_Type.getSelectedIndex()) {
            
             case 0:An=Animation.FadeIn_Out; break;
             case 1:An=Animation.V_Slide; break;
             case 2:An=Animation.H_Slide; break;
            
             }
        int delay;
       new EgyDialog(Text_MESSAGE.getText(),S, T,P,An,Auto_Hide.isSelected(),3000);
                                          
    }



الوسم joptionpane على المنتدى منتدى مصر التقني Untitl14

المثال و المكتبة بالمرفقات
من طرف NEXT
في السبت أبريل 18, 2020 8:17 am
 
ابحث في: واجهة المستخدم الرسومية Java Swing
موضوع: EgyDialog مربعات الحوار البديلة عن joptionpane بتصاميم رائعة وتاثير الحركة FadeIn_Out,Slide
المساهمات: 7
مشاهدة: 1565

[Swing] وضع ايقونة فى زر الامر لمربعات الحوار JOptionPane

اهلا بكم 

مثال بسيط لكيفية وضع ايقونة أو صورة مصغرة لزر الامر فى مربعات الحوار #JOptionPane على النحو التالى :

الكود:

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class AddingIconsToOptionPopups {

  public static void main(String[] a) {
    JFrame frame = new JFrame();
    Icon greenIcon = new ImageIcon("yourFile.gif");
    Icon redIcon = new ImageIcon("");
    Object iconArray[] = { greenIcon, redIcon };

    JOptionPane.showOptionDialog(frame, "Continue printing?", "Select an Option",
        JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, iconArray, iconArray[1]);

  }

}


الاخراج :

الوسم joptionpane على المنتدى منتدى مصر التقني AddingIconsToOptionPopups
من طرف زهراء
في الجمعة مارس 01, 2019 5:15 pm
 
ابحث في: واجهة المستخدم الرسومية Java Swing
موضوع: [Swing] وضع ايقونة فى زر الامر لمربعات الحوار JOptionPane
المساهمات: 1
مشاهدة: 574

[JDBC]الاتصال بقواعد بيانات MS Access فى Java 8 باستخدام UcanaccessDriver

اهلا بكم 

منذ عدة سنوات كتب مقال عن [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] لكن من بداية الاصدار الثامن للجافا تمت إزالة  JDBC-ODBC من Java SE 8 و بالتالى فهو لم يعد مدعوم من قبل الجافا وذلك لا سباب عدة منها مثلا :

_لا يعمل [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] بشكل صحيح مع قواعد بيانات [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] عندما يحتوي النص على أحرف [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] بنقاط تعليمات برمجية أعلى U+00FF ، لذا فإن هذا الإعداد لن يكون قادراً على التعامل مع أحرف مثل اليونانية والروسية والصينية والعربية وغيرها

_سائق الاتصال [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] تم انتاجة من قبل [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و بالتالى فهو يعمل فقط فى انظمة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] وهناك إصدارات منفصلة 32 بت و 64 بت من Access Database Engine (وبرنامج تشغيل ODBC) التي يمكن أن تكون مصدر إزعاج نشر و توزيع تطبيقك.

لذلك في هذه المقالة ، سوف نتعلم الخطوات الازمة للاتصال بقاعدة بيانات MS Access في Java 8 وذلك من خلال سائق الاتصال الجديد [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

الخطوة الاولى : تحميل سائق الاتصال ucanaccess

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] هو سائق تشغيل Java JDBC خالص يتيح لنا القراءة والكتابة إلى قواعد بيانات [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] بدون استخدام [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]. ويستخدم حزمتين أخريين هما [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ويمكنك تحميل هذا السائق من العنوان التالى :

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

بعد تحميل الملف المضغوط قم بفك الضغط ليظهر لك الملفات التالية :

ucanaccess-4.0.1.jar  
 /lib/
   commons-lang-2.6.jar  
   commons-logging-1.1.1.jar  
   hsqldb.jar  
   jackcess-2.1.6.jar  

الخطوة الثانية : إضافة المكتبات اعلاه الى بيئة التطوير

كل ما عليك القيام به هو إضافة جميع (5) JARs إلى مشروعك من خلال بيئة التطوير الخاصة بك و ذلك على النحو التالى :

1_Eclipse

انقر بزر الماوس الأيمن فوق المشروع ثم أختر الامر "Package Explorer" من القائمة التى ستظهر اختر "Build Path"> "Configure Build Path" .... انقر فوق الزر "Add External JARs" لإضافة كل من JARs خمس (5). عند الانتهاء ، يجب أن يظهر Java Build Path على هذا النحو :

الوسم joptionpane على المنتدى منتدى مصر التقني UZOjj

2_NetBeans

قم بالنقر بزر الماوس الأيمن على مجلد "Libraries" واختر "Add JAR / Folder ..." ، ثم استعرض إلى ملف JAR

الوسم joptionpane على المنتدى منتدى مصر التقني DVN3d

لتظهر لك الملفات بالشكل التالى :

الوسم joptionpane على المنتدى منتدى مصر التقني E5FKa


3_IntelliJ IDEA

من خلال القائمة File > Project Structure ...أختر الامر Libraries ثم انقر فوق الزر "إضافة" (+) وأضف ملفات JAR الخمسة (5). وبمجرد الانتهاء من ذلك ، يجب أن يبدو المشروع كالتالي:

الوسم joptionpane على المنتدى منتدى مصر التقني AnOp5

الخطوة الثالثة : شفرة الاتصال بقاعدة بيانات أكسس من خلال ucanaccess

مجرد أن نكون قد اتممنا الخطوات المذكورة أعلاه ثم يمكننا المضي قدما فى كتابة الشفرة الخاصة بالاتصال بقاعدة بيانات MS Access database
...لذلك سنفترض فى المثال التالى أن قاعدة البيانات المراد الاتصال بها تسمي Player.accdb ....ثم اتبع الخطوات التالية :

1_ قم بنقل قاعدة البيانات Player.accdb التى قمت بإنشائها و المراد الاتصال بها الى المجلد الرئسيى للمشروع الذى قمت بإنشائة من خلال

2_نقوم استدعاء جميع الدوال التابعه للمكتبه [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و ايضا ادراج المكتبه التي تتعامل مع صناديق الحوار [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كما تعلمنا سابقا و على النحو التالى :

الكود:

import java.sql.*;
import javax.swing.JOptionPane;


3_الاعلان عن الكائنات التى تستخدم لاتمام عملية ربط قاعدة البيانات مع البرنامج باستخدام الكائنات كما تعلمنا سابقا وهى : الكائن [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] وهو الخاص بنص الاتصال ...الكائن [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] وهو الخاص بجمل التحكم ....و الكائن [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] وهو الخاص بمؤشر البيانات وذلك عن طريق الكود التالى :

الكود:
Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;


4_نقوم بكتابة الكود التالى لتحميل JDBC Driver الخاص بقواعد البيانات اكسس و ذلك على النحو التالى :

الكود:
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");


كما فى السطر السابق قمن باستدعاء الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] وذلك لتحميل الفصيلة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] التي تحتوي على مشغل قاعدة البيانات ...و تحميل هذه الفصيلة قد يتسببفي حدوث استثناء في حالة أن الفصيلة المطلوبة لا يمكن تحميلها وهذا الاستثناء هو [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و بالتالى سنقوم بمعالجة هذا الاستثناء بالتعديل على الكود اعلاه على النحو التالى :

الكود:
try {
 
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        }
        catch(ClassNotFoundException cnfex) {
 
            
           JOptionPane.showMessageDialog(null,cnfex.getMessage());
          
        }


5_نقوم بأستدعاء الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الموجودة فى الفصيلة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] مع تمرير عنوان او رابط ملف قاعدة البيانات  Player.accdb  الية و ذلك عن طريق الكود التالى :

الكود:
String msAccDB = "/Player.accdb";
            String dbURL = "jdbc:ucanaccess://"+ msAccDB;
            
            connection = DriverManager.getConnection(dbURL);


يقوم هذا السطر بعملية اتصال بقاعدة البيانات عن طريق نص الاتصال dbc:ucanaccess://"+ msAccDB ثم وضعنا أسم قاعدة البيانات Player.accdb فى المتغير  [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ولكن في حالة عدم القدرة على الاتصال بقاعدة البيانات سيحدث الاستثناء SQLException لذلك سوف يتم معالجة كما فعلنا فى الدرس السابق .

6_نقوم بإستدعاء الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] لايجاء الكائن [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] والذي سيستخدم للاستعلام من قاعدة البيانات وذلك عن طريق الكود التالى :
الكود:
statement = connection.createStatement();


7_نفيذ الاستعلام من خلال استدعاء الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الموجودة فى الصنف [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و الذى قد عبرنا عنه بالكائن [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] و ذلك على النحو التالى :

الكود:
resultSet = statement.executeQuery("SELECT * FROM PLAYER");


8_حلقة دوران للحصول على قيم جدول البيانات ومعالجة البيانات التي تم إرجاعها ومن ثم طباعتها على النحو التالى :

الكود:
while(resultSet.next()) {
                System.out.println(resultSet.getInt(1) + "\t" +
                        resultSet.getString(2) + "\t" +
                        resultSet.getString(3) + "\t" +
                        resultSet.getString(4));
            }


الشفرة بالكامل على النحو التالى :

الكود:

import java.sql.*;
import javax.swing.JOptionPane;


public class DoConnect {
    
public static void main(String[] args) {
 
        // variables
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
 
        
        try {
 
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        }
        catch(ClassNotFoundException cnfex) {
             JOptionPane.showMessageDialog(null,cnfex.getMessage());
        }
        try {
 
            String msAccDB = "/Player.accdb";
            String dbURL = "jdbc:ucanaccess://"+ msAccDB;
            
            connection = DriverManager.getConnection(dbURL);
 
            statement = connection.createStatement();
 
            resultSet = statement.executeQuery("SELECT * FROM PLAYER");
 
            System.out.println("ID\tName\t\t\tAge\tMatches");
            System.out.println("==\t================\t===\t=======");
 
          
            while(resultSet.next()) {
                System.out.println(resultSet.getInt(1) + "\t" +
                        resultSet.getString(2) + "\t" +
                        resultSet.getString(3) + "\t" +
                        resultSet.getString(4));
            }
        }
        catch(SQLException sqlex){
            sqlex.printStackTrace();
        }
        finally {
            
            try {
                if(null != connection) {
                    
                    resultSet.close();
                    statement.close();
                   connection.close();
                }
            }
            catch (SQLException sqlex) {
                sqlex.printStackTrace();
            }
        }
    }
    
}



تحياتى لكم
من طرف أحمد مناع
في الجمعة فبراير 08, 2019 2:03 pm
 
ابحث في: قواعد البيانات JAVA JDBC
موضوع: [JDBC]الاتصال بقواعد بيانات MS Access فى Java 8 باستخدام UcanaccessDriver
المساهمات: 1
مشاهدة: 2909

الرجوع الى أعلى الصفحة

انتقل الى: