📄 code39.java~6~
字号:
package cal;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Font;import java.awt.FontMetrics;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.UIManager;import cal.*;/** * Powered by zms * \u00C7\u00EB\u00B2\u00BB\u00D2\u00AA\u00D3\u00C3\u00D3\u00DA\u00C9\u00CC\u00D2\u00B5\u00D3\u00C3\u00CD\u00BE * \u00C7\u00EB±\u00A3\u00C1\u00F4\u00C9\u00CF\u00C3\u00E6\u00B5\u00C4±ê\u00D6\u00BE */public class Code39 extends JLabel { public void paint(Graphics g) { super.paint(g); FontMetrics metrics=g.getFontMetrics(); int ha=metrics.getAscent()-metrics.getDescent(); int hb=ha/2; int hc=line.height; int hd=line.width; int he=metrics.getAscent()-metrics.getDescent(); int totalheight=ha+hb+hc+hd+he; int wb=line.width*95; int wc=line.width; int totalwidth=wb+wc; Dimension dim=new Dimension(totalwidth,totalheight); this.setMinimumSize(dim); int x=(this.getWidth()-totalwidth)/2; int y=(this.getHeight()-totalheight)/2; drawUpc(g,x,y+ha+hb,hd+he/2); g.drawString("*"+upc+"*",x+43,y+totalheight); } private static String[] CODEA =new String[]{ "1010001110111010", "1110100010101110", "1011100010101110", "1110111000101010", "1010001110101110", "1110100011101010", "1011100011101010", "1010001011101110", "1110100010111010", "1011100010111010" }; private void drawUpc(Graphics g,int x,int y,int t) { int x1=x; int one=line.width; int height=line.height; String s=""; for(int i=0;i<13;i++) { s+=CODEA[upc.charAt(i)-'0']; } s="1000101110111010"+s+"1000101110111010"; int n=s.length(); for(int i=0;i<n;i++) { if(s.charAt(i)=='1') { g.fillRect(x,y,one,height); } x+=one; } } private String upc="3102104000001"; public void setCode39(String s) { if(s!=null && s.length()==13) { boolean valid=true; for(int i=0;i<13;i++) { if(!Character.isDigit(s.charAt(i))) { valid=false; break; } } if(valid) { this.upc=s; this.repaint(); } } } public String getUpc() { return this.upc; } private Dimension line=new Dimension(2,100); public void setLineDimension(Dimension dim) { if(dim.width>0 && dim.height>0) { this.line=new Dimension(dim.width,dim.height); this.repaint(); } } public Dimension getLineDimension() { return new Dimension(line.width,line.height); } //for test use public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) {} JFrame frame=new JFrame("UPC Test"); frame.setSize(500,500); frame.getContentPane().setLayout(new BorderLayout()); //<usage> Code39 upc=new Code39(); upc.setFont(new Font("Dialog",Font.PLAIN,16)); //×\u00D6\u00CC\u00E5 upc.setUpc("3102104000005"); //upc upc.setLineDimension(new Dimension(1,50)); //×\u00EE\u00D0\u00A1\u00BA\u00DA\u00CF\u00DF\u00B5\u00C4size frame.getContentPane().add(upc,BorderLayout.CENTER); //</usage> frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Dimension screen=Toolkit.getDefaultToolkit().getScreenSize(); Dimension one=frame.getSize(); frame.setLocation((screen.width-one.width)/2,(screen.height-one.height)/2); frame.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -