精华内容
下载资源
问答
  • Java实现套打快递单

    热门讨论 2016-03-28 15:23:36
    此项目是用Java技术实现套打快递单功能,快递单模版是EMS,里面的代码比较简单,用的主要是BufferedImage读取模版,然后使用Graphics画图来实现对应关系,生成的是xps文件,可以直接在复印机或者打印机进行操作。
  • 在做某个管理项目时,被要求实现一套流程管理,比如请假的申请审批流程等,在参考了很多资料,并和同事讨论后,得到了一个自主实现的流程管理。  以下提供我的设计思路,知道了思路,实现起来就简单很多了。  ...

      在做某个管理项目时,被要求实现一套流程管理,比如请假的申请审批流程等,在参考了很多资料,并和同事讨论后,得到了一个自主实现的流程管理。

      以下提供我的设计思路,知道了思路,实现起来就简单很多了。

      首先我设计了5个类来实现流程的自主设置,主要是对流程的定义和流程流转。

      

    注:这是设计的图,并不是实现

    Dictionary:数据字典,不多说,流程类型存在这里面

    Flow:流程,即流程的定义,其中包括流程名称,描述,类型,启用时间,备注等;目前是通过判断某个类别的流程启用时间来进行判断当前流程是否启用的。

        一个类别只启用一个流程。所以只需要通过流程类别即可确定流程,并不要特定的状态字段。

    FlowInfoMovingNode:流程节点,在分析流程流转的时候,我们发现,流转一步就相当于从一个节点跳到另一个节点,所以我们设计这个流程节点类来表示每一步。

        其中包括,所属流程,节点名称,节点描述,监听权限。

        解释下监听权限是什么. 由于我们做的大部分是审核的流程,所以每个节点都需要有个审核的过程才进入下一个节点,所以我们要这个handlerRole属性来确定这个节点究竟是什么权限来审核。我们也知道,审核一般是某个人审核,这个我们后面说。这里是规定某个权限,即可以审核这个节点的权限。

    FlowInfoMovingRole:流程流转规则,为了解决从节点出来的各个分支,我们设计了这个流转规则,本来其实可以一起放到FlowInfoMovingNode中,但这样话无论从数据上    还是管理上来说都不如加流转规则方便清楚。FlowInfoMovingRole主要用来确定流转规则,比如某个节点通过了应该去哪个节点,某个节点没通过应该去哪个节点,这样无论是分支还是单支还是循环都可以通过相同的方式来进行设置。transition为变换规则,参照shiro验证权限的方式,我们也使用纯字符串格式来进行判断变换规则。

    FlowInfoMoving:流程流转信息,这里是每一步流转信息的存放,基本在进行流程流转的过程中,都是通过此类,其中包括:所属节点(得到所属节点同时也就得到所属流      程),申请源(因为我们不知道申请源是什么,我们只是管流程是怎么运转的,其申请源跟我们没有任何关系,我们保存申请源的唯一标识,若是想在审核的过程中进行查看申请源信息,则可以请求在Flow中监听的Url(handlerUrl),来进行查看,我会把申请源的唯一标识当做参数传递到Url中)。

        由于这个是操作最频繁的,所以我来具体解释下这个类。

      以下为本人具体实现的类设计,属性字段均有注释进行解释:

    /**
     * 流程流转信息
     * @author lichao *
     */
    @Entity
    @Table(name = FlowInfoMoving.TABLE_NAME)
    public class FlowInfoMoving extends BaseAuditEntity {
    
        private static final long  serialVersionUID = 1L;
    
        public static final String TABLE_NAME       = "t_flowInfoMoving";
    
        // 流程节点,标识此流转信息是流转到了哪个节点
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "node_id",nullable = true)
        private FlowInfoMovingNode node;
    
        // 申请源,具体申请信息的唯一标识
        @Column
        private Long               applyId;
    
        // 申请人,具体申请信息的申请人
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "applyuser_id",nullable = false)
        private User               applyUser;
    
        // 申请信息,具体申请信息的简要概述,由申请提供
        @Column(length = 50)
        @Size(max = 50)
        private String             discription;
    
        // 申请类别,即申请的流程的类型
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "flowtype_id",nullable = false)
        private Dictionary         applyType;
    
        // 变换的结果,即审核通过未通过等条件,此条件同FlowInfoMovingRole种的transition,
        // 但有一些区别,因为有添加待审核,已结束等其他信息条件
        @Column(length = 50)
        @Size(max = 50)
        private String             transition;
    
        // 处理信息,即审核信息,由审核人添加
        @Column(length = 100)
        @Size(max = 100)
        private String             handlerInfo;
    
        // 处理人,即此流转应该由谁来申请,由FlowInfoMovingNode中的handlerRole来进行筛选,
         //并由上一个节点的处理人来进行选择具体审核人。
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "handleruser_id",nullable = false)
        private User               handlerUser;
    
        // 此流转信息的状态,用于查询,0未审核,1已审核,2本申请已经结束
        @Column()
        private int                status;
    
      //getter...and setter....
    
    }
    FlowInfoMoving

     

    这样整个流程定义就结束了,我们可以自由设置流程的流程规则,来设置流程的流转方式。这样无论任何复杂的流程都可以进行自定义,并且可以随意的修改。

    这样设计的结果首先是可以任意的自定义流程,其次是申请源不需要去管流程的流转了,只需要提交一份申请,其他的事情均由流程进行操作实现。

    那么我们来看看一个流程是如何进行运转的。

    1.首先通过一个接口来传递具体的一些申请信息。

    2.通过接口中的getType()来确定是哪个流程

    3.查询到开始的流程节点。

    4.将开始的信息保存到流转信息中,并等待处理

    5.由审核人处理,指定下一个审核人

    6.通过处理结果来获得下一个流程节点

    7.查找下一个节点

    8.将这次的处理信息和下一个节点的信息保存到流转信息中,并等待处理

    9.由审核人处理,这样一直循环知道流程结束

    10.通过审核信息查找的下一个节点为null,则表示此流程已经结束,

    11.将结束的信息保存到流程流转信息中

    12.将整个流程流转的状态改为已结束。

     

    首先是Applyable是怎么设计的:其实一个接口,用于提供一些申请的信息

    public interface Applyable {
    
        // 得到申请的id,与类别进行联合查询,用于确定具体是哪个流程
        Long getId();
    
        // 得到申请的类别,用于确定具体是哪类流程
        String getApplyType();
    
        // 得到变换条件,用于确定申请后的第一个步骤
        String getTransition();
    
        // 得到此次申请的描述
        String getDiscription();
    
        // 得到审批人,即第一个步骤由谁审批
        User getHandlerUser();
    
    }
    Applyable

     

    然后是主要的控制流程流转和申请的接口

    /**
     * 
     *@Description:处理流程业务的Service
     *@Author:lichao
     *@Since:Oct 10, 201412:02:39 PM
     */
    public interface FlowMainService {
    
        /**
         * 
         *@Description: 用于申请
         *@Author: lichao
         *@Since: Oct 10, 20143:19:07 PM
         *@param applyable
         *@return
         * @throws Exception 
         */
        public void applyFlow(Applyable applyable) throws Exception;
    
        /**
         * 
         *@Description: 查找当前所处的流转信息
         *@Author: medees
         *@Since: Oct 13, 20148:56:00 AM
         *@param applyid 申请源
         *@param applytype 申请类别
         *@return
         */
        public FlowInfoMoving findNowMoving(Long applyid,Dictionary applyType);
    
        /**
         * 
         *@Description: 查找某一流程下的所有走过的流程 按创建时间升序排序
         *@Author: lichao
         *@Since: Oct 13, 20141:46:54 PM
         *@param applyid 申请源
         *@param applytype 申请类别
         *@return
         */
        public List<FlowInfoMoving> findAllMoving(Long applyid,Dictionary applyType);
    
        /**
         * 
         *@Description: 获取所有变换条件
         *@Author: lichao
         *@Since: Oct 13, 20144:27:41 PM
         *@param nodeid 所处节点的id
         *@return
         */
        public List<String> findNextTransition(Long nodeid);
    
        /**
         * 
         *@Description: 得到此节点可以审核的所有用户
         *@Author: lichao
         *@Since: Oct 14, 201410:22:50 AM
         *@param nodeid 节点id
         *@param applyid 申请源
         *@param applyUserId 申请人id
         *@return
         */
        public List<User> findNextAppUser(Long nodeid,String transition,Long applyUserId);
    
        /**
         * 
         *@Description: 分页查询自己所审批的流程
         *@Author: lichao
         *@Since: Oct 14, 20141:39:50 PM
         *@return
         */
        public Page<FlowInfoMoving> findMyMoving(Pageable pageRequest);
    
        /**
         * 
         *@Description: 进行审核的方法
         *@Author: lichao
         *@Since: Oct 15, 20142:11:18 PM
         *@param moving
         * @throws Exception 如果审核出错则抛出异常
         */
        public boolean approval(FlowInfoMoving moving) throws Exception;
    
        /**
         * 
         *@Description: 查找一个流程的所有流转
         *@Author: lichao
         *@Since: Oct 16, 201411:04:03 AM
         *@param applyid
         *@param applytype
         *@return
         */
        public Page<FlowInfoMoving> findAllMoving(Long applyid,Long applytype,Pageable Pageable);
    
        /**
         * 
         *@Description: 重新申请
         *@Author: lichao
         *@Since: Oct 17, 20141:43:03 PM
         *@return
         */
        public void resetApply(Applyable applyable) throws Exception;
    
        /**
         * 
         *@Description: 是否需要重新申请
         *@Author: lichao
         *@Since: Oct 17, 20141:43:03 PM
         *@return
         */
        public boolean isNeedReset(Long applyid,Dictionary dic);
    
    }
    FlowMainService

    申请源只要调用此接口中的applyFlow进行申请即可。

     

    具体实现就不在提供了!

     

    以上!

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/lic309/p/4140006.html

    展开全文
  • /*用java实现打印 ,java.awt中提供了一些打印的API,要实现打印 ,首先要获得打印对象 ,然后继承Printable实现接口方法print ,以便打印机进行打印 ,最后用用Graphics2D直接输出直接输出 。下面代码实现了简单的...

    package print;

    /*用java实现打印 ,java.awt中提供了一些打印的API,

    要实现打印 ,首先要获得打印对象 ,然后继承Printable实现接口方法print ,以便

    打印机进行打印 ,

    最后用用Graphics2D直接输出直接输出 。

    下面代码实现了简单的打印功能:

    */

    import java.awt.BasicStroke;

    import java.awt.Color;

    import java.awt.Component;

    import java.awt.Font;

    import java.awt.Graphics;

    import java.awt.Graphics2D;

    import java.awt.Image;

    import java.awt.Toolkit;

    import java.awt.RenderingHints;

    import java.awt.font.FontRenderContext;

    import java.awt.font.LineBreakMeasurer;

    import java.awt.font.TextAttribute;

    import java.awt.font.TextLayout;

    import java.awt.geom.Point2D;

    import java.awt.image.BufferedImage;

    import java.awt.print.Book;

    import java.awt.print.PageFormat;

    import java.awt.print.Paper;

    import java.awt.print.Printable;

    import java.awt.print.PrinterException;

    import java.awt.print.PrinterJob;

    import java.text.AttributedString;

    import javax.swing.JApplet;

    public class print implements Printable {

    /** */

    /**

    * @param Graphic指明打印的图形环境

    * @param PageFormat指明打印页格式(页面大小以点为

    计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点)

    * @param pageIndex指明页号

    **/

    public int print(Graphics gra, PageFormat pf, int pageIndex) throws

    PrinterException {

    System.out.println("pageIndex=" + pageIndex);

    Component c = null;

    //print string

    String str = "中华民族是勤劳、勇敢和富有智慧的伟大民族。";

    //转换成Graphics2D

    Graphics2D g2 = (Graphics2D) gra;

    //设置打印颜色为黑色

    g2.setColor(Color.black);

    //打印

    起点坐标

    double x = pf.getImageableX();

    double y = pf.getImageableY();

    switch (pageIndex) {

    case 0:

    //设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者

    逻辑名称)

    //Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput

    Font font = new Font("

    新宋体", Font.PLAIN, 9);

    g2.setFont(font); //设置字体

    //BasicStroke bs_3=new BasicStroke(0.5f);

    float[] dash1 = {2.0f};

    //设置打印线的属性。

    //1.

    线宽 2、3、不知道,4、空白的宽度,5、虚线的宽度,6、

    偏移量

    g2.setStroke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT,

    BasicStroke.JOIN_MITER, 2.0f, dash1,

    0.0f));

    //g2.setStroke(bs_3);//设置线宽

    float heigth = font.getSize2D(); //字体高度

    System.out.println("x=" + x);

    // -1- 用Graphics2D直接输出

    //首字符的

    基线(右下部)位于用户空间中的 (x, y) 位置处 //g2.drawLine(10,10,200,300); Image src = Toolkit.getDefaultToolkit().getImage( "file:icons/filter.gif"); g2.drawImage(src, (int) x, (int) y, c); int img_Height = src.getHeight(c); int img_width = src.getWidth(c); //System.out.println("img_Height="+img_Height+"img_width="+img_width) ; g2.drawString(str, (float) x, (float) y + 1 * heigth + img_Height); g2.drawLine((int) x, (int) (y + 1 * heigth + img_Height + 10), (int) x + 200, (int) (y + 1 * heigth + img_Height + 10)); g2.drawImage(src, (int) x, (int) (y + 1 * heigth + img_Height + 11), c); return PAGE_EXISTS; default: return NO_SUCH_PAGE; } } public static void main(String[] args) { // 通俗理解就是书、文档 Book book = new Book(); // 设置成竖打 PageFormat pf = new PageFormat(); pf.setOrientation(PageFormat.PORTRAIT); // 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。 Paper p = new Paper(); p.setSize(590, 840); //纸张大小 p.setImageableArea(10, 10, 590, 840); //A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72 pf.setPaper(p); // 把 PageFormat 和 Printable 添加到书中,组成一个页面 book.append(new PrintTest(), pf); //获取打印服务对象 PrinterJob job = PrinterJob.getPrinterJob(); // 设置打印类 job.setPageable(book); try { //可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印 //boolean a=job.printDialog(); //if(a) //{ job.print(); //} } catch (PrinterException e) { e.printStackTrace(); } } }

    展开全文
  • 这是一个网课的java代码实现,这个代码可以实现一个全套系统的java购物网站,可以进行搜索商品,添加购物车,结账,订单管理,发货之类的全套操作。
  • java实现针式打印机打功能-支持连续打印 可切换前入纸与后入纸
  • java实现图片验证码全套实现方式

    万次阅读 2016-05-05 10:36:29
    百度网盘demo提取地址: ... java引用的包 import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Random; import javax.servlet.http.HttpServ

    百度网盘demo提取地址:

    https://pan.baidu.com/s/1dF81khN

    java引用的包

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.session.Session;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import com.github.bingoohuang.patchca.custom.ConfigurableCaptchaService;
    import com.github.bingoohuang.patchca.filter.FilterFactory;
    import com.github.bingoohuang.patchca.filter.predefined.CurvesRippleFilterFactory;
    import com.github.bingoohuang.patchca.filter.predefined.DiffuseRippleFilterFactory;
    import com.github.bingoohuang.patchca.filter.predefined.DoubleRippleFilterFactory;
    import com.github.bingoohuang.patchca.filter.predefined.MarbleRippleFilterFactory;
    import com.github.bingoohuang.patchca.filter.predefined.WobbleRippleFilterFactory;
    import com.github.bingoohuang.patchca.utils.encoder.EncoderHelper;
    import com.yjf.easylife.web.security.util.CaptchaFactory;

    控制器代码

    @Controller
    @RequestMapping("/security")
    public class ValidateController {
    
        /**
         * 日志对象
         */
        protected final Logger logger = LoggerFactory.getLogger(getClass());
    
        private static final long serialVersionUID = 1L;
    
        private static ConfigurableCaptchaService cs = CaptchaFactory.getInstance();
    
        private static List<FilterFactory> factories;
    
        static {
            factories = new ArrayList<FilterFactory>();
            factories.add(new CurvesRippleFilterFactory(cs.getColorFactory()));
            factories.add(new MarbleRippleFilterFactory());
            factories.add(new DoubleRippleFilterFactory());
            factories.add(new WobbleRippleFilterFactory());
            factories.add(new DiffuseRippleFilterFactory());
        }
    
        @RequestMapping("/getImage.htm")
        public void getImage(HttpServletRequest request, HttpServletResponse response) {
            try {
                cs.setFilterFactory(factories.get(new Random().nextInt(5)));
                setResponseHeaders(response);
    
                Session session = SecurityUtils.getSubject().getSession();;
                String token = EncoderHelper.getChallangeAndWriteImage(cs, "png",
                    response.getOutputStream());
                session.setAttribute("EASYLIFE_CAPCHA", token);
    
                logger.info("当前的SessionID = " + session.getId() + ",  验证码 = " + token);
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private void setResponseHeaders(HttpServletResponse response) {
            response.setContentType("image/png");
            response.setHeader("Cache-Control", "no-cache, no-store");
            response.setHeader("Pragma", "no-cache");
            long time = System.currentTimeMillis();
            response.setDateHeader("Last-Modified", time);
            response.setDateHeader("Date", time);
            response.setDateHeader("Expires", time);
        }
    }

    CaptchaFactory实现代码

    import com.github.bingoohuang.patchca.color.RandomColorFactory;
    import com.github.bingoohuang.patchca.custom.ConfigurableCaptchaService;
    import com.github.bingoohuang.patchca.word.RandomWordFactory;
    
    public class CaptchaFactory {
    
        private static ConfigurableCaptchaService cs = new ConfigurableCaptchaService();
    
        static {
            cs.setColorFactory(new RandomColorFactory());
            RandomWordFactory wf = new RandomWordFactory();
            wf.setCharacters("1234567890");
            wf.setMaxLength(4);
            wf.setMinLength(4);
            cs.setWordFactory(wf);
        }
    
        public static ConfigurableCaptchaService getInstance() {
            return cs;
        }
    }

    html代码

    <html>
     <head></head>
     <body>
      <div class="p-new-in"> 
       <span class="p-new-inname">验证码</span>
       <input type="text" name="customCaptcha" class="p-new-input p-new-w177" placeholder="请输入图片验证码" /> 
       <span class="p-new-code l-mar-r15"> <img src="/security/getImage.htm" class="reloadImage" id="reloadImage" width="121" height="40" /> </span> 
       <a href="javaScript:;" class="l-color9 reloadImage">看不清楚,换一张</a> 
      </div>
     </body>
    </html>

    js代码

    $(".reloadImage").click(function () {
        //获取当前的时间作为参数,无具体意义
        var timenow = new Date().getTime();
        $('#reloadImage').attr("src", "/security/getImage.htm?date=" + timenow);
    });
    

    判断验证码是否正确

    /**
     *
     * Created by cike-zihao on 2015/11/25
     */
    package com.yjf.easylife.common.util;
    
    import org.apache.commons.lang3.StringUtils;
    
    import javax.servlet.http.HttpServletRequest;
    /**
     * Created by cike-zihao on 2015/11/25.
     */
    public class SecurityCodeUtil {
        public static boolean whetherImgCaptchaMatch(String customCaptcha,
            HttpServletRequest request) {
            boolean captchaMatch = true;
    
            String requestCaptcha = (String) request.getSession()
                                                    .getAttribute("EASYLIFE_CAPCHA");
    
            if (!StringUtils.equals(customCaptcha, requestCaptcha)) {
                captchaMatch = false;
            }
    
            return captchaMatch;
        }
    }
    展开全文
  • java实现打印打功能

    千次阅读 2015-11-13 08:52:17
    package test;.../*实现套打,把套打的格式当成一张图片,将要填入的数据按其在图片在坐标来定位*/ public class PrintTest implements Printable{    private String[] value = null;// 所要打印的数据{

    package test;

     

    import java.awt.print.*;

    import java.awt.*;

    /*实现套打,把套打的格式当成一张图片,将要填入的数据按其在图片在坐标来定位*/

    public class PrintTest implements Printable{

     

       private String[] value = null;// 所要打印的数据{ "001", "002", "003"};

     

       private int[][] position = null;// 每个数据在图片中的坐标 { { 10, 50 }, { 30, 70 }, { 50,  90 }};

     

       /**

        * implements Printable

        * PageFormat类描述了页面的定位信息、它的尺寸以及每英尺可绘制的区域(单位1/72nd)。

        */

       public int print(Graphics g, PageFormat pf, int pageIndex) {

           

           System.out.println(pageIndex);

           // 只打一页

           if (pageIndex > 0) {

               return Printable.NO_SUCH_PAGE;

           }

     

           Graphics2D g2d = (Graphics2D) g;

           for (int i = 0; i < value.length; i++) {

               String str = value[i];

               int[] temp = position[i];

               int x = temp[0];

               int y = temp[1];

              // 设置打印字体(字体名称、样式和点大小)

               Font font = new Font("新宋体", Font.PLAIN, 9);

               g2d.setFont(font); //设置字体

               g2d.drawString(str, x, y);

           }

           return Printable.PAGE_EXISTS;

        }

     

       public static void main(String[] args) {

           printReport();

        }

     

       public static void  printReport(){

     

           PrinterJob pj = PrinterJob.getPrinterJob();//创建一个打印任务

           PageFormat pf = PrinterJob.getPrinterJob().defaultPage();

           Paper paper = pf.getPaper();

     

           // 设置页面高和宽,A4纸为595,842

           double pageWidth = 595;

           double pageHeight = 810;

           paper.setSize(pageWidth, pageHeight);

     

           paper.setImageableArea(0, 0, pageWidth, pageHeight);

           pf.setOrientation(PageFormat.LANDSCAPE); //设置打印方向,LANDSCAPE为横向,打印方向默认为纵向

           pf.setPaper(paper);

           

           PrintTest  printTest=newPrintTest();

           printTest.setValue(new String []{"郑品", "", "√"});

           printTest.setPosition(new int [][]{{ 30, 180 }, { 90,180}, { 150,180}});

            

           pj.setPrintable(printTest, pf);

     

           if (pj.printDialog()) { //弹出打印对话框,打印对话框,用户可以通过它改变各种选项,例如:设置打印副本数目,页面方向,或者目标打印机。

     

               try {

                    pj.print();

               } catch (PrinterException e) {

                    e.printStackTrace();

               }

           }

        }

     

       /**

        * @return 返回 position。

        */

       public int[][] getPosition() {

           return position;

        }

     

       /**

        * @param position

        *            要设置的 position。

        */

       public void setPosition(int[][] position) {

           this.position = position;

        }

     

       /**

        * @return 返回 value。

        */

       public String[] getValue() {

           return value;

        }

     

       /**

        * @param value

        *            要设置的 value。

        */

       public void setValue(String[] value) {

           this.value = value;

        }

    }


    展开全文
  • java 实现

    千次阅读 2012-07-05 17:17:22
    /*用java实现打印 ,java.awt中提供了一些打印的API, 要实现打印 ,首先要获得打印对象 ,然后继承Printable实现接口方法print ,以便打印机进行打印 , 最后用用Graphics2D直接输出直接输出 。 下面代码实现了...
  • import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Main { ...
  • UDP接字的java实现

    2017-03-20 08:54:48
    UDP接字的java实现客户端如下:import java.io.*; import java.net.*; import java.util.Scanner; /* * UDP接字客户端 */ public class UDPClient { public static void main(String[] args) throws ...
  • 打之前需要先利用Adobe Acrobat Pro DC先做出要打印证书的模板,举例如下图,为对应的文本框赋予名称(ID),后续可在Java程序中根据ID给对应的文本框赋值(模板可存在Img头像,本文忽略)。模板制作完毕后,将xxx...
  • java applet实现套

    千次阅读 2008-08-06 16:55:00
    /*实现套打,把套打的格式当成一张图片,将要填入的数据按其在图片在坐标来定位*/public class PrintTest implements Printable { private String[] value = null;// 所要打印的数据{ "001", "002",
  • TCP接字的java实现

    2017-03-20 09:00:58
    TCP接字的java实现 客户端如下:import java.io.*; import java.net.*;public class TCPClient { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub String
  • Java实现 蓝桥杯 算法提高 正方形

    万次阅读 多人点赞 2020-02-10 10:59:27
    试题 算法提高 正方形 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述  给定正方形边长width,如图按规律输出层层嵌套的正方形图形。  注意,为让选手方便观看,下图和样例输出均使用“”代替空格,请选手...
  • 代码中有详细的注解和学习心得 大话设计模式Java版全套实现代码压缩包 项目下载地址:https://pan.baidu.com/s/1rNr3gDO5YgHMnjrTalA1aA 提取码:vj7j
  • JAVA套接字实现简易的双人通信系统JAVA套接字资料socket是基于应用服务与TCP/IP通信之间的一个抽象,他将TCP/IP协议里面复杂的通信逻辑进行分装,对用户来说,只要通过一组简单的API就可以实现网络的连接。...
  • 我们要实现的具体功能是:利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。...题目比较简单的,我们直接来看代码吧:首先是服务器端的实现:import java.net.ServerSocket;import j...
  • 全套源码-即时通信系统(Java实现
  • 使用Java套接字实现服务端,并且将访问文件渲染到浏览器上 import java.net.*; import java.io.*; import java.util.*; /** * * @author Chenxing Wang */ public class websocket { static String ...
  • 在服务器上实现的改良的server.java和改良的client.java线程 您将需要Java编译器才能运行程序 Java包:java.util,javax.crypto,java.net,java.io javac FILENAME 运行:java改良_server.javajava改良_client....
  • 对于初学Java套接字Socket编程者,用Java套接字Socket编程实现简单的聊天小工具,就是一个很好的练习项目。既简单,有能基本理解Java套接字的运行原理、所涉及到的类及其属性和类之间的关系。该聊天小工具需要完成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,023
精华内容 5,609
关键字:

java实现套

java 订阅