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;
}
}
}
6*17点阵的Window程序, Java写的。的更多相关文章
- 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写
基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作 ...
- 五:用JAVA写一个阿里云VPC Open API调用程序
用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软 ...
- 终于解决了用JAVA写窗口程序在不同的windows界面下的显示保持一致。
好像是两三年前的时候发现这个问题. 由于在windows经典界面与windows xp界面下,窗口的标题栏的高度是不一样的. 所以我们在用Java写GUI程序的时候,会遇到一个问题. 当我把一个JFr ...
- 用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
package com.ljn.base; /** * @author lijinnan * @date:2013-9-12 上午9:55:32 */ public class IncDecThrea ...
- 程序代写, CS代写, 代码代写, CS编程代写, java代写, python代写, c++/c代写, R代写, 算法代写, web代写
互联网一线工程师程序代写 微信联系 当天完成 查看大牛简介特色: 学霸代写,按时交付,保证原创,7*24在线服务,可加急.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor ...
- CS代码代写, 程序代写, java代写, python代写, c/c++代写,csdaixie,daixie,作业代写,代写
互联网一线工程师程序代写 微信联系 当天完成特色: 互联网一线工程师 24-48小时完成.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor code,代码原创.参考课程sl ...
- 模拟游客一天的生活与旅游java程序代写源码
在某个城市的商业区里,有一家首饰店,一家饭店,一家面馆,一家火锅店,一家银行,一家当铺 现在有一群来自四川的游客,一群陕西的游客,一群上海的游客,和以上各店家的工作人员在此区域里,请模拟他们一天的生活 ...
- Java写的斗地主游戏源码
源码下载在最后 我们的前年的课设要求做一个斗地主程序,当时正在愁如何做界面,当时刚好在学习C#,于是就用C#完成了这个程序.一方面,当时我C#功底还很差(其实现在也不怎么样),很多地方用了“笨办法”, ...
- 学了编译原理能否用 Java 写一个编译器或解释器?
16 个回答 默认排序 RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...
随机推荐
- iOS 应用内跳转到appstore里下载
SKStoreProductViewController类是UIViewController的子类, 如果你对view controller比较熟悉的话,那SKStoreProductViewCont ...
- ie8兼容border-radius方法
<!doctype html><html> <head> <meta charset="utf-8" /> &l ...
- C语言命名空间
//首先要认识到命名空间的使用条件.#include <stdio.h> typedef struct A { int A; } A; typedef union B { int A; } ...
- String的类型的数据
字符串类型的数据也是计算机基础. var box = "lc"; var box1 = 'lc1'; //不管是单引号还双引号,都必须成对出现 1.ECMAscript规定字符串是 ...
- RedHat6.6更新Centos6yum源
RedHat6.6更新Centos6yum源 一. 删除自带的RedHat6.6yum源 1- rpm -qa|grep yum|xargs rpm -e --nodeps(不检查依 ...
- diff命令和patch命令
diff命令和patch命令 Linux就这个范儿 2.9.5 文件对比命令——diff diff命令搭建网站离不开数据库,在Linux系统上我们使用源码安装了MySQL服务器.不久我们发现 Goog ...
- APP源码集中打包大放送!十一个千万级别APP源码随意处置!
小伙伴们还在一个一个苦苦寻找各类APP源码吗?此贴集中打包最常用APP的源码,你想得到的APP,这里都有! 想做商城?这里有天猫! 想做同城服务?这里有大众点评! 想做外卖?这里有饿了么! 想做视频? ...
- Power-BI 仪表盘实现动态预警
BI系统中仪表盘“序列”中的“预警”属性可以手工填入固定的值,也可从数据集里取值设定预警范围 ,以实现动态预警.其中的“范围”属性手工输入固定值应该为百分比(0-1),而在下拉选择绑定列为值是为数值. ...
- Power-BI For K3 免费版培训与交流!Q群视频培训,绝对干货!
Power-BI For K3 免费版培训与交流!Q群视频培训,绝对干货!1.产品安装与配置:2.产品使用:3.个性化开发(现场提需求现场开发):4.交流互动.时间:2015-12-03(周四)晚8 ...
- JavaScript权威指南(第六版)--JavaScript概述 DEMO
//所有在双斜线之后的内容都属于注释 //仔细阅读这里的注释:它们对JavaScript代码做了解释 //变量是表示值的一个符号名字 //变量是通过var关键字声明的 var x; //声明一个变量x ...