zoukankan      html  css  js  c++  java
  • 6*17点阵的Window程序, Java写的。

    package com.wulala;

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;

    public class SwingComponent {

        public static int TOTAL_DOT = 6 * 17;
        public boolean ifPressed = false;

        LightBtn lightBtns[];
        JFrame frame = new JFrame("6×17点阵");

        JButton clearButton = new JButton("清空");
        JButton getResultButton = new JButton("计算结果数组");
        JTextArea textField = new JTextArea();
        public JFrame jf = new JFrame("BorderLayout");

        public static void showMe(JFrame jf) {
            jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            jf.setSize(300, 300);
            jf.setVisible(true);
        }

        public void setBorderLayout() {

            jf.setLayout(new BorderLayout());// BorderLayout是Swing容器的默认布局管理器,它的含义是采用东南西北中5个方位来进行布局,可以分别往这些方位上放置组件。
            jf.add(new JButton("east"), BorderLayout.EAST);
            jf.add(new JButton("south"), BorderLayout.SOUTH);
            jf.add(new JButton("west"), BorderLayout.WEST);
            jf.add(new JButton("north"), BorderLayout.NORTH);
            jf.add(new JButton("center"), BorderLayout.CENTER);
            SwingComponent.showMe(jf);
        }

        public void init() {
            lightBtns = new LightBtn[TOTAL_DOT];
            bondListerner4Button();
            textField.setLineWrap(true);
            frame.setLayout(new BorderLayout());
            JPanel eastPanel = new JPanel();
            JPanel westPanel = new JPanel();
            eastPanel.setLayout(new BorderLayout());
            westPanel.setLayout(new GridLayout(6, 17));
            for (int i = 0; i < TOTAL_DOT; i++) {
                LightBtn button = new LightBtn();
                button.setBackground(Color.BLACK);
                lightBtns[i] = button;
                westPanel.add(button);
            }

            // button.setSize(100, 30);
            eastPanel.add(clearButton, BorderLayout.NORTH);
            eastPanel.add(getResultButton, BorderLayout.SOUTH);
            // eastPanel.add(new JButton("清空"));
            // textField.setSize(300,300);
            eastPanel.add(textField, BorderLayout.CENTER);
            eastPanel.setBackground(Color.BLACK);
            eastPanel.setPreferredSize(new Dimension(300, 150));
            frame.add(eastPanel, BorderLayout.EAST);
            frame.add(westPanel, BorderLayout.CENTER);
            frame.setSize(900, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            // frame.setLocation(400, 400);
            frame.setResizable(false);
            // frame.pack();
            frame.setVisible(true);
        }

        private void bondListerner4Button() {
            getResultButton.addMouseListener(new MouseListener() {

                @Override
                public void mouseClicked(MouseEvent e) {
                    String resultStr = "";
                    String lineStr = "[";
                    for (int i = 0; i < TOTAL_DOT; i++) {

                        int bit = 0;
                        if (lightBtns[i].ifWhite) {
                            bit = 1;
                        }
                        lineStr = lineStr + bit + ",";
                        if ((i % 17) == 16 && (i > 0)) {
                            lineStr = lineStr.substring(0, lineStr.length() - 1);
                            resultStr = resultStr + lineStr + "] ";
                            lineStr = "[";
                        }
                    }
                    textField.setText(resultStr);
                }

                @Override
                public void mouseEntered(MouseEvent e) {
                }

                @Override
                public void mouseExited(MouseEvent e) {
                }

                @Override
                public void mousePressed(MouseEvent e) {
                }

                @Override
                public void mouseReleased(MouseEvent e) {
                }

            });

            clearButton.addMouseListener(new MouseListener() {

                @Override
                public void mouseClicked(MouseEvent e) {
                    for (int i = 0; i < TOTAL_DOT; i++) {
                        lightBtns[i].turnOff();
                    }
                    textField.setText("");
                }

                @Override
                public void mouseEntered(MouseEvent e) {
                }

                @Override
                public void mouseExited(MouseEvent e) {
                }

                @Override
                public void mousePressed(MouseEvent e) {
                }

                @Override
                public void mouseReleased(MouseEvent e) {
                }

            });
        }

        public static void main(String[] args) {
            SwingComponent sc = new SwingComponent();
            sc.init();
            // sc.setBorderLayout();
        }

        class LightBtn extends JButton implements MouseListener {

            public boolean ifWhite = false;

            public void turnOff() {
                ifWhite = false;
                this.setBackground(Color.BLACK);
            }

            public void switchBackgroundColor() {

                if (ifWhite == true) {
                    this.setBackground(Color.BLACK);
                    ifWhite = false;
                } else {
                    this.setBackground(Color.WHITE);
                    ifWhite = true;
                }
            }

            public LightBtn() {
                this.addMouseListener(this);
            }

            @Override
            public void mouseClicked(MouseEvent arg0) {
                // System.out.println("clicked");
                switchBackgroundColor();
            }

            @Override
            public void mouseEntered(MouseEvent arg0) {
                if (ifPressed) {
                    switchBackgroundColor();
                }
            }

            @Override
            public void mouseExited(MouseEvent arg0) {

            }

            @Override
            public void mousePressed(MouseEvent arg0) {
                ifPressed = true;
            }

            @Override
            public void mouseReleased(MouseEvent arg0) {
                ifPressed = false;
            }
        }
    }

  • 相关阅读:
    MySql行锁等待时间
    日志工具类-Mapper静态调用
    MySql锁机制理解记录
    Flink之TableAPI和SQL(5):表的时间特性
    Flink之TableAPI和SQL(4):表的Sink实现
    Flink之TableAPI和SQL(3):通过TableAPI和SQL表的一些操作(包括查询,过滤,聚集等)
    Flink之TableAPI和SQL(2):表和外部系统的连接方式
    Flink之TableAPI和SQL(1):基本功能描述
    sb 错误
    洛谷 P6189
  • 原文地址:https://www.cnblogs.com/Montauk/p/5759284.html
Copyright © 2011-2022 走看看