我的java事件小程序

by admin on 2020年1月18日

import java.awt.*;
import java.awt.event.*;
public class Eventest
{
 Button btn1=new Button(“单击”);
 Frame myframe=new Frame(“测试单击事件”);
 public void init(){
  btn1.setSize(30,26);
  btn1.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    if(btn1.getBackground()==Color.red)
     btn1.setBackground(Color.white);
      else
      btn1.setBackground(Color.red);
   }
  });
  myframe.setBounds(300,200,200,200);
  myframe.add(btn1);
  myframe.setVisible(true);

import java.awt.*;
import java.awt.event.*;
public class MulitListener
{
 private Frame myframe=new Frame(“测试窗口”);
 private Button btn1=new Button(“按钮1”);
 private Button btn2=new Button(“按钮2”);
 private TextArea fil=new TextArea(7,8);

       
—-基础

 }

 public void init()
 {
  second se=new second();
  btn1.addActionListener(new first());
  btn1.addActionListener(se);
  btn2.addActionListener(new first());
  myframe.addWindowListener(new mylistener());
  Panel pel=new Panel();
  pel.add(btn1);
  pel.add(btn2);
  myframe.add(pel,BorderLayout.SOUTH);
  myframe.add(fil,BorderLayout.CENTER);
  myframe.pack();
  myframe.setBounds(400,400,400,400);
  myframe.setVisible(true);

       // 创建一个窗体对象
        JFrame frame = new JFrame();
        // 设置窗口大小
        frame.setSize(300, 200);
        // 指定窗口的显示位置
        frame.setLocation(300, 200);
        // 指定窗口的标题栏
        frame.setTitle(“MY FRIST WINDOWS!”);

 public static void main(String[] args)
 {
  new Eventest().init();
 }
}

 }
 class first implements ActionListener{
  public void actionPerformed(ActionEvent e){
   fil.append(“事件一  “+e.getActionCommand()+”rn”);
  }
 }
    class second implements ActionListener{
  public void actionPerformed(ActionEvent e){
   fil.append(“事件二  “+e.getActionCommand()+” 
“+e.getWhen()+”rn”);
  }
 }
 class mylistener implements WindowListener{
  public void windowOpened(WindowEvent e){
   fil.append(“窗体已打开n”);
  }
  public void  windowDeiconified(WindowEvent e){
   fil.append(“窗体已恢复n”);
  }
  public void  windowIconified(WindowEvent e){
   fil.append(“窗体最小化n”);
  }
  public void  windowDeactivated(WindowEvent e){
   fil.append(“窗体失去焦点n”);
  }
  public void  windowActivated(WindowEvent e){
   fil.append(“窗体被激活n”);
  }
  public void  windowClosing(WindowEvent e){
   fil.append(“窗体关闭中n”);
   System.exit(0);
  }
  public void  windowClosed(WindowEvent e){
   fil.append(“窗体已关闭n”);
  }
  

        // 获取窗口的内容面板
        Container c = frame.getContentPane();

 }
 
 public static void main(String[] args)
 {
  new MulitListener().init();
 }
}

        // 设置内容面板的背景色
        Color color = new Color(10, 30, 20);
        c.setBackground(color);
        // 显示窗口
        frame.setVisible(true);

        // 设置当关闭窗口是同时结束程序。
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

        // 创建组件
        JButton btn = new JButton(“按钮1”);

 

        // 将组件添加到窗体中。。。
        this.add(btn, BorderLayout.NORTH);
        this.add(btn1, BorderLayout.WEST);
        //this.add(btn2, BorderLayout.SOUTH);
        //this.add(btn3, BorderLayout.EAST);
        this.add(btn4, BorderLayout.CENTER);

        this.setSize(300, 400);

        this.setVisible(true);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 

       // 设置布局方式(流式布局)
        this.setLayout(new FlowLayout(FlowLayout.LEADING));

        this.setLayout(new GridLayout(4, 4));

 

 

 

—–小应用

 

package GUI;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.*;

public class Test07 extends JFrame {

    JTextField txtNum;
    JLabel label;
    JButton btn1, btn2, btn3;
    JPanel panel;

    int num = 0;

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Test07 frame = new Test07();

    }

    private void InitControl() {

        txtNum = new JTextField(20);
        label = new JLabel(“请随机输入一个数(1-100)”);
        btn1 = new JButton(“猜数字。。。”);
        btn1.addActionListener(new BtnClick());

        btn2 = new JButton(“重新玩。。。”);
        btn3 = new JButton(“退出。。。”);

        panel = new JPanel();

        panel.add(btn1);
        panel.add(btn2);
        panel.add(btn3);

        this.add(txtNum, BorderLayout.NORTH);
        this.add(label, BorderLayout.CENTER);
        this.add(panel, BorderLayout.SOUTH);

    }

    public Test07() {

        InitControl();

        // 产生一个随机数。。。
        Random random = new Random();
        // 产生一个随机数。。。
        num = random.nextInt();

        this.setSize(300, 200);
        this.setVisible(true);
        this.setLocationRelativeTo(null);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public class BtnClick implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub

            // 区分点击那个按钮,获取事件源。。。
            JButton btnclick = (JButton) e.getSource();

            // 获取按钮上的文字
            String text = btnclick.getText();

            if (text.equals(“猜数字。。。”)) {

                int input = Integer.valueOf(txtNum.getText());

                if (input == num) {

                    label.setText(“恭喜你!表演节目!!!”);
                } else if (input < num) {

                    label.setText(“猜小了!!!”);
                } else if (input > num) {

                    label.setText(“猜大了!!!”);
                } else if (text.equals(“重新玩。。。”)) {

                    // 产生一个随机数。。。
                    Random random = new Random();
                    // 产生一个随机数。。。
                    num = random.nextInt() + 1;
                } else {
                    System.exit(0);
                }
            }

        }

    }

}

 

package GUI;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Test08 extends JFrame {

    JButton[][] btns = new JButton[10][10];

    // 默认色
    Color defaultcolor = null;
    JButton btn = new JButton();

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Test08 frame = new Test08();

    }

    // 初始化窗体中所需的组件
    private void InitControl() {

        for (int i = 0; i < btns.length; i++) {
            for (int j = 0; j < btns[i].length; j++) {
                JButton btn = new JButton();
                // 给按钮添加所在的行和列的信息,存入command中。。。
                btn.setActionCommand(i + “,” + j);
                // 注册按钮的单击事件
                btn.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        // 获取单击按钮
                        JButton btnclick = (JButton) e.getSource();
                        //
获取按钮的命令参数(就是这个按钮在矩阵中的行号和列号)
                        String command = btnclick.getActionCommand();
                        // 使用字符分割得到按钮的行号和列号
                        String[] strs = command.split(“,”);
                        // 获取整形的行号和列号
                        int row = Integer.parseInt(strs[0]);
                        int col = Integer.parseInt(strs[1]);

                        // 声明上下左右的按钮
                        JButton topbtn = null;
                        JButton downbtn = null;
                        JButton leftbtn = null;
                        JButton rigthbtn = null;

                        // 获取上方按钮
                        if (row – 1 >= 0) {
                            topbtn = btns[row – 1][col];

                        }
                        // 获取左边的按钮
                        if (col – 1 >= 0) {
                            leftbtn = btns[row][col – 1];

                        }

                        // 获取下方的按钮
                        if (row + 1 < btns.length) {
                            downbtn = btns[row + 1][col];

                        }
                        // 获取右边的按钮
                        if (col + 1 < btns.length) {
                            rigthbtn = btns[row][col + 1];
                        }

                        JButton[] arrbtns = new JButton[5];
                        arrbtns[0] = btnclick;
                        arrbtns[1] = topbtn;
                        arrbtns[2] = downbtn;
                        arrbtns[3] = leftbtn;
                        arrbtns[4] = rigthbtn;

                        changColor(arrbtns);
                        /*
                         * btnclick.setBackground(Color.red);
                         * topbtn.setBackground(Color.red);
                         * downbtn.setBackground(Color.red);
                         * leftbtn.setBackground(Color.red);
                         * rigthbtn.setBackground(Color.red);
                         */
                    }
                });

                btns[i][j] = btn;
                this.add(btn);
            }
        }

    }

    // 改变按钮和周围颜色
    private void changColor(JButton[] nearbtns) {

        for (int i = 0; i < nearbtns.length; i++) {
            if (nearbtns[i] != null) {
                if (nearbtns[i].getBackground() == Color.red) {
                    // 变成原来的颜色
                    nearbtns[i].setBackground(defaultcolor);

                } else {
                    nearbtns[i].setBackground(Color.red);
                }
            }
        }

    }

    // 构造方法
    public Test08() {

        InitControl();

        this.setLayout(new GridLayout(10, 10));

        // 获取按钮的默认色
        defaultcolor = btn.getBackground();

        this.setSize(300, 350);

        this.setVisible(true);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图