如何在java swing中自动增加字符串?

时间:2012-11-01 07:41:00

标签: java swing for-loop while-loop auto-increment

我想让我的程序中的字段joCode自动递增,但我有这样的格式 - > JP100000,每次用户点击按钮“保存”,它将增加到JP100001,JP100002,直到JP199999 ..

这是我的代码:

   try {
        int div = view.getCbDiv().getSelectedIndex();
        int l = 100000;
        do {
            if ( div == 0 ) {
                view.getTxtJobCode().setText("JP" + l);
            }
            else {
                view.getTxtJobCode().setText("JU" + l);
            }
        } while(l <= 199999);

        l++;
    }

4 个答案:

答案 0 :(得分:2)

希望您的代码是用actionEvent方法编写的。因此,将增量计数器保留为全局变量

private int l = 10000;

@Override
public void actionPerformed(ActionEvent e) {
    int div = view.getCbDiv().getSelectedIndex();
    if (div == 0) {
        view.getTxtJobCode().setText("JP" + l);
    } else {
        view.getTxtJobCode().setText("JU" + l);
    }
    l++;
}

答案 1 :(得分:1)

我会像tutorial一样使用NumberFormat。也许是这样的:

NumberFormat myFormat = new DecimalFormat("000000");
view.getTxtJobCode().setText("JP" + myFormat.format(l));

答案 2 :(得分:0)

正如安德烈所说,将l++行移到do区块中:

   try {
        int div = view.getCbDiv().getSelectedIndex();
        int l = 100000;
        do {
            if ( div == 0 ) {
                view.getTxtJobCode().setText("JP" + l);
            }
            else {
                view.getTxtJobCode().setText("JU" + l);
            }
            l++;
        } while(l <= 199999);
    }

答案 3 :(得分:0)

尝试我的示例,根据您的ID格式JP100001,ID的长度将 8 ,前缀将为 JP JU

    /**
     * This method is used to format plain id (plain number). Mostly,
     * this method is used in setId() methods of entities.
     * <p>
     * E.g.
     * Input: id=523, prefix="JP", maxLength=15
     * Output: JP0000000000523
     * <p>
     * @param id id must not be null.
     * @param prefix prefix must not be null.
     * @param maxLength maximum length of the id string and it must not be negative number.
     * @return a formatted id string
     */
    public static String formatId(String id, String prefix, int maxLength) {
        if (!id.startsWith(prefix)) {
            int length = id.length() + prefix.length();
            for (; (maxLength - length) > 0; length++) {
                id = '0' + id;
            }
            id = prefix + id;
        }
        return id;
    }

    yourMethod() {
        try {
            int div = view.getCbDiv().getSelectedIndex();
            int l = 100000;
            do {
                if ( div == 0 ) {
                    view.getTxtJobCode().setText(formatId((l + ""), "JP, 8));
                }
                else {
                    view.getTxtJobCode().setText(formatId((l + ""), "JU, 8));
                }
            } while(l <= 199999);

            l++;
        }
    }