سؤال

تطبيق Java الخاص بي ليس كبيرًا جدًا ، لكنني أود أن أفعل ذلك "الطريق الصحيح". تبحث عن اقتراحات لعدم حدوث فوضى كبيرة ...

أنا أستخدم Swing ، إطار تطبيق Swing وقاعدة بيانات H2.

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

أرغب في الحفاظ على نظافة الأشياء ، محمولة ومرنة (يمكن تمكين تعطيل بعض علامات التبويب على سبيل المثال أو إضافة بعضها بسهولة).

ها هي الأسئلة:

1) كيفية "تحديث" علامات التبويب عندما يتغير محتوى قاعدة البيانات؟ تنفيذ بعض واجهة المستمع؟ هل يجب أن أحدد تلك الواجهة أو يوجد شيء موجود بالفعل يمكنني إعادة استخدامه؟

2) كيفية "ربط" علامات التبويب المختلفة معًا بحيث يكون من السهل القفز من بعضها البعض (وقد تضطر إلى حمل بعض الحجة لإعداد علامة تبويب الوجهة إلى "العرض" اليمين)

3) إذا قمت بتعيين بعض التفضيلات مع بعض المرشحات في جزء آخر من التطبيق ، كيف يمكنني مشاركة هذه الإعدادات مع التطبيق بأكمله؟

وعندما أسأل "كيف" ، أقصد حقًا "ما هي أفضل طريقة" ... يمكنني الحصول على هذا العمل بالفعل ... فقط أبحث عن الأداة المناسبة لاستخدام نمط التصميم أو ذلك.

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم Swing ، يمكنك استخدام Pane Tabbed للحصول على تصميم جدولي.

تنفيذ مستمع (كما تخطط). إلقاء نظرة على واجهة ملحوظة في جافا.

يمكنك تنفيذ Singleton (على سبيل المثال فئة PreferenceManager) للاحتفاظ بالتفضيل والوصول إليه عبر التطبيق للوصول إلى الخصائص.

نصائح أخرى

هناك استراتيجيات مختلفة لبناء تطبيقات واجهة المستخدم الرسومية. هنا بعض المقالات عن.

هل تريد حقًا نموذج دفع حيث يتعين على الخادم الحفاظ على اتصال مع كل عميل ثم تحديثه جميعًا عندما يتغير أي شيء؟ هذا ممكن مع حفنة من العملاء ، ولكن سرعان ما يصبح مشكلة. من الأفضل استخدام نموذج سحب ، حيث يسأل العميل يدويًا (دوريًا؟) عن التحديثات. هذه أيضًا طريقة جيدة لاستخدام القفل المتفائل مع حقل Last_modified في DB. حاول تحديثًا ، إذا تم تغييره منذ آخر إعادة تحميله ، وحذر المستخدم والسماح له بالكتابة / الدمج.

أما بالنسبة للتأرجح بشكل عام ، فإن أفضل الممارسات هو عوامل كل شيء لا يرتبط واجهة المستخدم الرسومية بالفصول الأساسية ("منطق الأعمال") التي تطلق الأحداث. قم بتسجيل جميع فصول التأرجح الخاصة بك كمستمع مناسب للحدث وقم بتحديث واجهة المستخدم الرسومية بشكل مناسب (SwingUtabilities.Invokelater () هو صديقك هنا).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top