عدة طرق لإضافة أحداث في Java (أعيد طبعها من مقالة codebrother مع تغييرات طفيفة):
/** * معالجة الاستماع لحدث Java - تطبق فئتها الخاصة واجهة ActionListener كمستمع للحدث * * @author codebrother */class EventListener1 Extends JFrame Implements ActionListener { Private JButton btBlue, btDialog public EventListener1() { setTitle("Java GUI معالجة الاستماع للحدث"); setBounds(100, 100, 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); // إضافة مستمع الحدث إلى الزر btBlue.addActionListener(this); btBlue add(btDialog); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE } // ************************** التعامل مع الأحداث *********** ؛ ******* **************** @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btBlue) { Container c = getContentPane( ); c.setBackground(Color .BLUE } else if (e.getSource() == btDialog) { JDialog حوار = جديد JDialog(); حوار.setBounds(300, 200, 400, 300); حوار.setVisible(true } }}/** * معالجة الاستماع لحدث Java - معالجة الطبقة الداخلية * * @author codebrother * / class EventListener3 Extends JFrame { Private JButton btBlue, btDialog // المُنشئ public EventListener3() {; setTitle("الاستماع إلى أحداث واجهة المستخدم الرسومية في Java"); setBounds(100, 100, 500, 350); setLayout(new btBlue = new JButton("Blue"); window" ); // إضافة كائن مستمع للحدث (فكرة موجهة للكائنات) btBlue.addActionListener(new ColorEventListener()); btDialog.addActionListener(new DialogEventListener()); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); تنفذ ActionListener { @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE) } } // فئة داخلية DialogEventListener، تنفذ واجهة ActionListener class DialogEventListener نوعا ActionListener { @Override public void actionPerformed(ActionEvent e) { JDialog مربع حوار = جديد JDialog(); 200, 400, 300);حوار.setVisible(true); } }}/** * معالجة الاستماع لحدث Java - معالجة الطبقة الداخلية المجهولة * * @author codebrother */class EventListener2 Extends JFrame { public JButton btBlue, btDialog public EventListener2 () { setTitle("معالجة الاستماع لحدث Java GUI"); 500, 350); setLayout(new FlowLayout()); btBlue = new JButton("Blue"); btDialog = new JButton("Pop-up"); ActionListener() { // التعامل مع الأحداث @Override public void actionPerformed(ActionEvent e) { Container c = getContentPane(); c.setBackground(Color.BLUE } }); // وإضافة مستمع الحدث btDialog.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JDialog Dialog = new JDialog() ; حوار.setBounds(300, 200, 400, 300); Diagram.setVisible(true); add(btBlue); add(btDialog); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); المؤلف codebrother */class EventListener4 Extends JFrame { public JButton btBlue, btDialog public EventListener4() {; setTitle("الاستماع إلى أحداث واجهة المستخدم الرسومية في Java"); setBounds(100, 100, 500, 350); setLayout(new btBlue = new JButton("Blue"); window" ); // أضف مستمع حدث إلى الزر btBlue.addActionListener(new ColorEventListener(this)); btDialog.addActionListener(new DialogEventListener()); add(btDialog); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE }}// فئة خارجية ColorEventListener، تنفذ فئة واجهة ActionListener ColorEventListener { public EventListener4 el; ColorEventListener(EventListener4 el) { this.el = el; } @Override public void actionPerformed(ActionEvent e) { Container c = el.getContentPane(); c.setBackground(Color.BLUE }}// فئة خارجية DialogEventListener, Implementation فئة واجهة ActionListener DialogEventListener تنفذ ActionListener { @Override public void actionPerformed(ActionEvent e) { JDialog Dialog = new JDialog(); { حدث جديد 2 () }}