
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class WidgetDemo implements ActionListener {
    JButton cadd = new JButton("Add");
    JButton csub = new JButton("Subtract");
    JTextField tf;
    int clicks = 0;
    int maxClicks = 10;
    Font font = new Font("Courier", Font.BOLD, 32);

    public WidgetDemo() {
        JFrame f = new JFrame("Widget Demo Example");
        f.setResizable(true);
        tf = new JTextField("Clicks");
        tf.setForeground(Color.RED);
        tf.setBackground(Color.YELLOW);
        tf.setFont(font);
        tf.setHorizontalAlignment(JTextField.CENTER);
        cadd.setFont(font);
        csub.setFont(font);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setPreferredSize(new Dimension(350, 200));
        f.setLayout(new GridLayout(2, 2, 5, 10));
        cadd.addActionListener(this);
        csub.addActionListener(this);
        f.add(cadd);
        f.add(csub);
        f.add(tf);
        f.pack();
        f.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        System.out.println("Button " + e.getActionCommand() + " clicked");
        if (source == cadd) {
            clicks++;
            csub.setEnabled(true);
            if (clicks > maxClicks) {
                clicks = maxClicks;
                cadd.setEnabled(false);
            }
        } else {
            clicks--;
            cadd.setEnabled(true);
            if (clicks < 0) {
                clicks = 0;
                csub.setEnabled(false);
            }
        }
        tf.setText(Integer.toString(clicks));
    }// End of actionPerformed
        public static void main (String[]args){
            System.out.println("Create window");
            new WidgetDemo();
        }
    }// End of class
