هل لدي احد من الاعضاء الاعزاء فكرة لعمل شاشة توقف لبرنامج حيث يتم الخروج من البرنامج خلال فترة زمنية في حالة عدم وجود حركة
شاشة توقف
ممكن توضح أكثر؟
أيضا انتبه لنوع الموضوع
اعتقد ان اخونا الكريم عاوز يعمل splash بس تكون فى اخر البرنامج او اللعبه
اعتقد انها لا تحدث الا فى بدايه البرنامج فقط
لكن يمكنك عمل frame وتضع به الصور التى تريديها والصور الختاميه للبرنامج او اللعبه
وتشوف اخر حدث فى اللعبه اللى هو هينهيها
وتجعل اطار جديد من هذا الاطار الذى صممم ليكون صفحه ختاميه وتظهره فى Thread لمده مثلا 5 ثوانى وبعدين تقفل البرنامج خالص
ان كان هناك حل اخر فلننتظر
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 30 أغسطس 2010 في 23:35
الاخ على ما يبدو
يريد اظهار شاشة توقف (مثل ال Screen Saver) تظهر بعد وقت معين من عدم تحرك الماوس او اي نقرة على الكيبورد (اي عدم وجود تفاعل ما بين المستخدم و البرنامج)
و بعد مضي بعض الوقت من ظهور هذه الشاشة يتم الخروج من البرنامج
والله اعلم
اخي او اختي
الرجاء اختيار نوع المشاركة سؤال في المرة القادمة
بما ان الموضوع ليس بمناقشة
انما هو سؤال :)
شكرا لتفهمك
هذه هى الشاشه التى اقترحت فكرتها
لكن تقريبا ان انا فهمت السوال غلط :wacko: :wacko: :wacko:
لكن بعد ما فكرت فيها وظبطتها قولت خلاص احطها يمكن حد يحتاجها :)
هاحاول ان شاء الله اطبق الفكره بعد ما فهمتها تانى
وربنا يسهل
ممكن تطبيق الفكرة كالتالي
لدينا متغير int، مثلا inactionSeconds وقيمته الإبتدائبة 0. ولدينا Timer يقوم كل ثانية بزيادة واحد لهذا لمتغير. عندما تصل قيمة المتغير إلى، لنقل مثلا 10، نقوم بإظهار ال glasspane، والذي يخفي كل الواجهة.
ثم نقوم بالتنصت على الأحداث، مثلا KeyListener و MouseListener، وعندما يتم إرسال حدث ما، فإننا نعيد قيمة المتغير inactionSeconds إلى 0 ونخفي ال glasspane.
هذا مثال تطبيقي سريع لما قلته
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class NewClass1 implements ActionListener {
JFrame frm;
Timer timer;
int inactionSeconds = 0;
JPanel glassPane;
public NewClass1() {
frm = new JFrame();
glassPane = new JPanel();
glassPane.setBackground(Color.LIGHT_GRAY);
frm.setGlassPane(glassPane);
frm.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
activate();
}
public void keyPressed(KeyEvent e) {
activate();
}
public void keyReleased(KeyEvent e) {
activate();
}
});
frm.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
activate();
}
public void mousePressed(MouseEvent e) {
activate();
}
public void mouseReleased(MouseEvent e) {
activate();
}
public void mouseEntered(MouseEvent e) {
activate();
}
public void mouseExited(MouseEvent e) {
activate();
}
});
timer = new Timer(1000, this);
timer.start();
frm.setSize(600, 400);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
inactionSeconds++;
if (inactionSeconds >= 10) {
frm.getGlassPane().setVisible(true);
} else {
frm.getGlassPane().setVisible(false);
}
}
private void activate() {
frm.getGlassPane().setVisible(false);
inactionSeconds = 0;
}
public static void main(String[] args) {
new NewClass1();
}
}لكن لم يسمع من قبل بال glasspane، فهو أعلى طبقة في واجهات Swing، حيث أن ال JFrame تتكون من عدة طبقات، كما تبين الصورة
تم تعديل هذه المشاركة بواسطة herch في 31 أغسطس 2010 في 04:08
برنامج عصام جميل ويفي بغرض السائل
لكن البرنامج لا يفي بالغرض بشكل عام فهو لا يستطيع التأكد من كون المستخدم غير موجود على جهازه
المشكلة لو أن برنامجك غير فعال active فأنت غير قادر على رصد أي حدث يحصل في النظام
ومن هنا لا يمكنك عمل screen server بالمرة
بالمناسبة أنا أقوم باستخدام setEnabled(false) لإيقاف الشاشة برنامجي
فهل هناك سبب يجعلني أن أستخدم glass pane?
تحياتي
تم تعديل هذه المشاركة بواسطة علاء الصالحي في 31 أغسطس 2010 في 22:49
لا أظن هناك سبب محدد... ممكن يكون أستعمال ال glasspane أكثر جمالية، خاصة لو استعملت JPanel شبه شفاف، وأضفت له صورة أو شيء من هذا القبيل
جاري تجربة فكرة الاخ herch
فكرة جميلة لكن لو كان لديك مشروع متعدد الفورم سوف نحتاج نقل الكود لجميع الفورم وهذا غير عملي
فهل ممكن معرفة حركة الماوس للويندوز مثلا وليس الفورم
يمكن عمل abstract class يحتوي هذه الدوال كلها
و اعتماده كأساس لكل ال Forms
و هنالك دالة رئيسية فيه static تقوم بتصفير العداد
مرة عملتها لكن على الموبايل
herch كتب:ممكن تطبيق الفكرة كالتالي
.
.
.
.
1+
معلومة جديده شكرا لك اخي herch
قمت بتجربة الكود و اعجبتني الفكره ...

