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

如何在JavaSwing中自动增加字符串?,java,swing,for-loop,while-loop,auto-increment,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.ge

我想让程序中的字段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++;
    }
试试看{
int div=view.getCbDiv().getSelectedIndex();
int l=100000;
做{
如果(div==0){
view.getTxtJobCode().setText(“JP”+l);
}
否则{
view.getTxtJobCode().setText(“JU”+l);
}

}而(l希望您的代码是用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++;
}

正如Andre所说,将
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);
    }
试试看{
int div=view.getCbDiv().getSelectedIndex();
int l=100000;
做{
如果(div==0){
view.getTxtJobCode().setText(“JP”+l);
}
否则{
view.getTxtJobCode().setText(“JU”+l);
}
l++;

}而(l试试我的例子,根据您的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++;
        }
    }
/**
*此方法用于格式化普通id(普通编号)。通常,
*此方法用于实体的setId()方法。
*
*例如。
*输入:id=523,prefix=“JP”,maxLength=15
*输出:JP0000000000523
*
*@param id不能为空。
*@param前缀不能为空。
*@param maxLength id字符串的最大长度,不能为负数。
*@返回格式化的id字符串
*/
公共静态字符串formatId(字符串id、字符串前缀、int maxLength){
如果(!id.startsWith(前缀)){
int length=id.length()+prefix.length();
对于(;(maxLength-length)>0;length++){
id='0'+id;
}
id=前缀+id;
}
返回id;
}
你的方法(){
试一试{
int div=view.getCbDiv().getSelectedIndex();
int l=100000;
做{
如果(div==0){
view.getTxtJobCode().setText(formatId((l+“”),“JP,8));
}
否则{
view.getTxtJobCode().setText(formatId((l+“”),“JU,8));
}

}而(l我会使用
NumberFormat
,就像它们在

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

你可能想把
l++
移到
do
块中。我认为
l++
应该在
else
块之外,否则它不会在所有情况下都增加……我对每个(好)问题都有好的答案感兴趣。所以你来了。;)@ayyoung,这是id生成。您可以根据需要配置id格式和长度。它无法工作,因为formatId(String,String,int)在setText中调用时,它是必需的(int,String,int).@ayyoung:)请使用
(l+“”)重试
int
string
,我将更新我的帖子。该值显示最近的值,但我想进行此循环,在插入新数据时循环该值,而不是同时显示所有循环值,当我单击“新建”按钮一次时,它将逐个显示JP/JU100001,当我再次单击“新建”时,它将显示JP/JU100002,等等