package GUIAnwendungen.Beispiele;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class ButtonBeispiel {
 
    static JFrame frame = new JFrame("JButton demo");    
    static JButton plus_button = new JButton("+1");           
    static JButton minus_button = new JButton("-1");          
    static JLabel label = new JLabel("0");                  
 
    static int counter = 0;                                  
 
    public static void main(String[] args) {
 
        plus_button.addActionListener(new ActionListener() {    // plus_button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر
            @Override
            public void actionPerformed(ActionEvent e) {
                label.setText("" + (++counter));                // plus_button عند النقر على الـ label واحداً ثم توضع كنص للـ counter ستزيد قيمة المتغير
            }
        });
        
       plus_button.addActionListener(e ->  label.setText("" + (++counter)));
        plus_button.addActionListener(e ->  new Test());
        plus_button.addActionListener(e ->  test());
        
        plus_button.addActionListener(e ->  new ButtonBeispiel().new InnereKalsse());
        
 
        minus_button.addActionListener(new ActionListener() {   // minus_button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر
            @Override
            public void actionPerformed(ActionEvent e) {
                label.setText("" + (--counter));                // minus_button عند النقر على الـ label واحداً ثم توضع كنص للـ counter ستنقص قيمة المتغير
            }
        });
 
        frame.add(minus_button);                                // frame في الـ minus_button هنا أضفنا الـ
        frame.add(label);                                       // frame في الـ label هنا أضفنا الـ
        frame.add(plus_button);                                 // frame في الـ plus_button هنا أضفنا الـ
 
        frame.setSize(300, 80);                                 // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 80
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
        frame.setLayout(new FlowLayout());                      // حتى نجعل الأشياء التي نضيفها في النافذة تترب وراء بعضها و في وسط النافذة FlowLayout إستخدمنا الـ
        frame.setVisible(true);                                 // هنا جعلنا النافذة مرئية
 
    }
    
    public static void test() {
    	
    	class Test{
    		
    		Test(){
    			System.out.println("Lokale Klasse");
    		}
    	}
    	
    	new Test();
    }
    
    public class InnereKalsse{
    	InnereKalsse(){
    		System.out.println("Hallo InnereKalsse");
    	}
    }
 
}

class Test{
	
	Test(){
		System.out.println("Hallo Test");
	}
	
	

}