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 + "]\n";
                        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;
        }
    }
}

时间: 2024-10-12 07:56:22

6*17点阵的Window程序, Java写的。的相关文章

用Java写的爬虫程序

这是一个web查找的根本程序,从命令行输入查找条件(开端的URL.处置url的最大数.要查找的字符串), 它就会逐一对Internet上的URL进行实时查找,查找并输出匹配查找条件的页面. 这个程序的原型来自<java编程艺术>, 为了非常好的剖析,站长去掉了其间的GUI有些,并稍作修改以适用jdk1.5.以这个程序为基础,可以写出在互联网上查找 比如图像.邮件.页面下载之类的"爬虫". 先请看程序运转的进程: D:\java>javac  SearchCrawler

代写程序|java二叉树字典查询(qq 928900200)

This assignment will help you practice and understand better the Binary Tree and Binary Search Tree data structures, their operations and implementations. You are to design a small dictionary using the Binary Search Tree data structure. Each entry ma

java图形图像SVG转PPM程序代写 qq:928900200

Background Many image file formats encode image data as a 2-D matrix or raster of pixel colors. The amount of available color information is fixed by the image's width and height of its resolution. If the resolution is too small, you will have proble

Java写的抓取任意网页中email地址的小程序

/* * 从网页中抓取邮箱地址 * 正则表达式:java.util.regex.Pattern * 1.定义好邮箱的正则表达式 * 2.对正则表达式预编译 * 3.对正则和网页中的邮箱格式进行匹配 * 4.找到匹配结果 * 5.通过网络程序,打通机器和互联网的一个网站的连接 */ import java.net.*; import java.util.regex.*; import java.io.*; public class EmailAddressFetch { public static

终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。

好像是两三年前的时候发现这个问题. 由于在windows经典界面与windows xp界面下,窗口的标题栏的高度是不一样的. 所以我们在用Java写GUI程序的时候,会遇到一个问题. 当我把一个JFrame显式的设为setSize(300,200);并且这个Container的Layout是null的时候,在windows经典界面和windows xp界面显示的时候是有差别的.因为windows xp界面下的标题栏比windows经典界面下的标题栏高了7个象素. 今天我终于找到了一个办法,可以不

基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写

基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作量日益变大,而传统的人工管理方式已经远远不能满足现在旅游的服务方式.传统的旅游方式经分析其有诸多的缺陷,存在数据维护效率低下,不易保管,容易丢失和出错.同时查询也不方便,劳动力成本过高导致的旅游资源信息不方便,也在一定程度上导致了对各种信息反应缓慢,容易丧失商机.为了弥补上述缺陷,便于开展旅游预订工

五:用JAVA写一个阿里云VPC Open API调用程序

用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软件管理自动化管理网络资源是一件显著提升运维效率和网络生产力的事情.产品经理教你写代码系列文章的目标是不懂代码的网络工程师能一步一步的学会用API管理网络. 另外通过文章标题大家也可以看出来,产品经理教你写代码肯定是一个业余班,里面的代码很多写的都不规范,可能也有很多Bug.专业选手可以参考的有限,请

java代写,java程序代写,代写java,java编程代写

java代写,java程序代写,代写java,java编程代写 我们5人Team都是来自于国内一线互联网公司的高级工程师,毕业于顶尖CS院校,已经接编程代写达2年时间,阵容详细介绍见此 学生来自于美.澳.加.英.中国含中国香港.中国澳门.中国台湾,接单数量近1000单 这里有我们的接单截图记录,可以看到我们的高效.诚信.靠谱:代写成交截图 联系方式 加之前务必了解价格详情:价格详情 有详细价格范围 防止浪费时间 精力有限,仅接学生作业,不接社会需求!不接社会需求! 不接[深度学习].不接[图像处

使用XCB编写X Window程序(01):快速起步

估计现在已经没有谁使用XCB这么底层的库写应用程序了,要用也是用经过精心封装的Motif, LessTiff, GTK, Qt, EWL,  ETK或者Cairo等高层次的库.我之所以这么费心地去折腾XCB,其实主要也是为了学习.毕竟,使用最接近底层的UI库写代码是学习X协议及GUI编程原理的最好方法. XCB的主要教程可以参考这里:http://xcb.freedesktop.org/tutorial/ 和X协议有关的文档,在这里:http://www.x.org/releases/X11R7