我想让我的程序中的字段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++;
}
答案 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++;
}
}