Member 13522219 Ответов: 1

Jtextfield увеличивается на 1 начиная с B3001 при нажатии кнопки Добавить в swing


bill_number(с помощью jtextfield) должен автоматически увеличиваться на 1 после нажатия кнопки submit. Мне нужны секутениальные значения в формате B3001,B3002 и так далее.... пожалуйста, помогите мне plz

Что я уже пробовал:

public static class SequentialNumber
{
       private static int currentNumber=3000;
       public static String GetNextNumber()
       {
            currentNumber++;
            return "B"+currentNumber;
       }
}
public Printbill() {


    contentPane1 = new JPanel();
    contentPane1.setBackground(Color.WHITE);
    contentPane1.setBorder(new EmptyBorder(5, 5, 5, 5));

    contentPane1.setLayout(null);



    dcfield = new JTextField();

    dcfield.setBounds(553, 109, 86, 20);
    contentPane1.add(dcfield);
    dcfield.setColumns(10);
    String ContractNo=SequentialNumber.GetNextNumber();
    dcfield.setText(ContractNo);
    JButton btnAdd = new JButton("ADD");
    btnAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
          Printbill p=new Printbill();
          dispose();
            p.setVisible(true);
            SequentialNumber s=new SequentialNumber();
            String stt=s.GetNextNumber();
           dcfield.setText(stt);
        }
    });

     }
            }

Richard MacCutchan

Разделите поле на альфа - префикс и число. Добавьте 1 к этому числу. Рекомбинировать на два поля.

1 Ответов

Рейтинг:
2

CPallini

Ваш код почти правильный. Попробуй

class SequentialNumber
{
  private static int currentNumber = 3000;
  public static String GetNextNumber()
  {
    currentNumber++;
    return "B"+currentNumber;
  }
}

public class program
{
  public static void main(String args[])
  {
    for (int n=0; n<20; ++n)
    {
      String sn =  SequentialNumber.GetNextNumber();
      System.out.printf("sequential_number[%d] = %s\n", n, sn);
    }
  }
}