2

我想让我的程序中的字段 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

4 回答 4

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++;
}
于 2012-11-01T07:50:32.767 回答
1

我会NumberFormat像他们在教程中展示的那样使用。也许是这样的:

NumberFormat myFormat = new DecimalFormat("000000");
view.getTxtJobCode().setText("JP" + myFormat.format(l));
于 2012-11-01T12:35:08.110 回答
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);
    }
于 2012-11-01T07:50:55.993 回答
0

试试我的例子,根据你的 ID 格式JP100001,ID 的长度为8,前缀为JPJU

    /**
     * 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++;
        }
    }
于 2012-11-01T07:54:13.143 回答