LED显示模拟(java的GUI显示)
//先上效果图,每一秒改变一次颜色
//这个小程序生成的jar包下载地址:http://pan.baidu.com/s/1sjFj9ST
下面上源代码:
//1.color.java
package com.huowolf; import java.awt.Color; enum color{ red(Color.RED), orange(Color.ORANGE),yellow(Color.YELLOW), green(Color.GREEN),gray(Color.GRAY),blue(Color.BLUE), pink(Color.pink),black(Color.BLACK); private Color c; private color(Color c) { this.c = c; } public Color getMyColor() { return c; } }
//2.LEDFrame.java
package com.huowolf; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class LEDFrame extends JFrame { private static final long serialVersionUID = 1L; public JTextField tf; public JButton bt; public JPanel p; public String num; LEDCanvas canvas = new LEDCanvas(this); public LEDFrame() { setTitle("LED显示模拟"); setLocation(100,150); setSize(900,400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); add(canvas,BorderLayout.CENTER); setVisible(true); } private void init() { p = new JPanel(); add(p,BorderLayout.NORTH); JLabel l = new JLabel("请输入你要生成的数字串:"); l.setHorizontalAlignment(JLabel.LEFT); p.add(l); tf = new JTextField(10); p.add(tf); bt = new JButton("确定"); p.add(bt); pack(); } public String getTF() { bt.addActionListener(new ActionListener() { //final String s; @Override public void actionPerformed(ActionEvent e) { num= tf.getText(); //tf.setText(""); canvas.repaint(); } }); return num; } public static void main(String[] args) { new LEDFrame().init(); } }
//3.LEDCanvas.java
package com.huowolf; import java.awt.Canvas; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.Timer; public class LEDCanvas extends Canvas { private static final long serialVersionUID = 7922500886L; int [][]data=null; LEDFrame LEDf = null; public Timer timer; public Color c; public LEDCanvas(LEDFrame f) { this.LEDf = f; ActionListener listener = new TimerListener(); timer = new Timer(1000,listener); timer.start(); } class TimerListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { c = ColorValue(); repaint(1000); } } public void paint(Graphics g){ Font f=new Font("宋体",Font.BOLD,25); g.setFont(f); g.setColor(c); String str = LEDf.getTF(); int pos=20; for(int k=0;str!=null && k<str.length();k++) { char ch = str.charAt(k); print(ch); int y =10; for(int i=0;i<data.length;i++) { int x =pos; x+=20; for(int j=0;j<data[i].length;j++) { //System.out.print(data[i][j]); if(data[i][j]== 1) { g.fillOval(x,y, 12, 16); } x+=15; } //System.out.println(); y += 25; } pos+=100; } } public Color ColorValue(){ Random random = new Random(); int r = random.nextInt(color.values().length); color c = null; for(color c1 : color.values()) { if(c1.ordinal() == r) { //System.out.println(c1.getMyColor()); c = c1; break; } } return c.getMyColor(); } public void print (char c) { if('0'==c) { data = new int[][] {{1,1,1,1,1,}, {1,0,0,0,1,}, {1,0,0,0,1,}, {1,0,0,0,1,}, {1,1,1,1,1,} }; } if('1'==c) { data = new int[][] {{0,0,0,1,0,}, {0,0,0,1,0,}, {0,0,0,1,0,}, {0,0,0,1,0,}, {0,0,0,1,0,} }; } if('2'==c) { data = new int[][] {{1,1,1,1,1,}, {0,0,0,0,1,}, {1,1,1,1,1,}, {1,0,0,0,0,}, {1,1,1,1,1,} }; } if('3'==c) { data = new int[][] {{1,1,1,1,1,}, {0,0,0,0,1,}, {1,1,1,1,1,}, {0,0,0,0,1,}, {1,1,1,1,1,} }; } if('4'==c) { data = new int[][] {{1,0,0,0,1}, {1,0,0,0,1}, {1,1,1,1,1,}, {0,0,0,0,1,}, {0,0,0,0,1,} }; } if('5'==c) { data = new int[][] {{1,1,1,1,1,}, {1,0,0,0,0,}, {1,1,1,1,1,}, {0,0,0,0,1,}, {1,1,1,1,1,} }; } if('6'==c) { data = new int[][] {{1,1,1,1,1,}, {1,0,0,0,0,}, {1,1,1,1,1,}, {1,0,0,0,1,}, {1,1,1,1,1,} }; } if('7'==c) { data = new int[][] {{1,1,1,1,1,}, {0,0,0,0,1,}, {0,0,0,0,1,}, {0,0,0,0,1,}, {0,0,0,0,1,} }; } if('8'==c) { data = new int[][] {{1,1,1,1,1,}, {1,0,0,0,1,}, {1,1,1,1,1,}, {1,0,0,0,1,}, {1,1,1,1,1,} }; } if('9'==c) { data = new int[][] {{1,1,1,1,1,}, {1,0,0,0,1,}, {1,1,1,1,1,}, {0,0,0,0,1,}, {1,1,1,1,1,} }; } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。