Как я могу получить значение выбранного элемента в JSpinner?

Я делаю приложение, которое использует JSpinner с максимальным числом 30, я должен выбрать значение из этого JSpinner и записать строку в JTextField, и результат появится в Textarea, когда я компилирую, у меня много проблем, связанных с методом jSpinner1State, может кто-нибудь мне помочь, потому что я не знаю, где моя проблема. Это мой код метода JSpinner:

    jSpinner1.addChangeListener(this);

    private void jSpinner1StateChanged(javax.swing.event.ChangeEvent evt) { 
    // TODO add your handling code here: 
    Object sp=jSpinner1.getValue();
    int i =Integer.parseInt(sp.toString() );
    String targetIP=jTextField1.getText();

        try{ 
    jSpinner1StateChanged(evt);
    String   cmd = "tracert -h "+i+ "" +targetIP;                        
    Process p = Runtime.getRuntime().exec(cmd);
    InputStream in = p.getInputStream();
    StringBuilder build = new StringBuilder();
    Reader reader = new InputStreamReader(in);
    char[] buffer = new char[512];
    int nbRead = reader.read(buffer);
    while(nbRead > 0) {
    build.append(buffer, 0, nbRead);
    nbRead = reader.read(buffer);
     }
    String response = build.toString(); 
    jTextArea1.setText(response);
    }catch(Exception e){
jTextArea1.append(e.toString()); }


}

1 ответ

Например, в вашем коде есть бесконечный цикл. Внутри вашей функции jSpinner1StateChanged вы вызываете jSpinner1StateChanged(evt), что вызовет бесконечный цикл.

Как вы создаете свой JSpinner? Если вы используете int, то создайте его, используя SpinnerNumberModel, Это упростит ваш код при получении текущего значения из счетчика.

jSpinner1 = new JSpinner(new SpinnerNumberModel(0, 0, 30, 1));
Integer currentValue = (Integer)jSpinner1.getValue();
Другие вопросы по тегам