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

Я делаю приложение, которое использует JSpinner с максимальным числом 30, я должен выбрать значение из этого JSpinner и привязать строку к JTextField, и результат появится в текстовой области, когда я компилирую, у меня много проблем, связанных с методом 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()); }


}

person hanem    schedule 21.02.2012    source источник
comment
От себя скажу, сложно понять, как помочь, если у тебя много проблем, но ты не описываешь ни одну из них. Вы получаете сообщение об ошибке при попытке компиляции? Выбрасывается ли исключение? Пожалуйста, предоставьте необходимые данные, так как это значительно облегчит ответ на ваш вопрос. Также вы захотите переформатировать свой код, чтобы отступы кода соответствовали стандартам, что сделает ваш код более удобным для чтения другими.   -  person Hovercraft Full Of Eels    schedule 21.02.2012


Ответы (1)


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

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

jSpinner1 = new JSpinner(new SpinnerNumberModel(0, 0, 30, 1));
Integer currentValue = (Integer)jSpinner1.getValue();
person Tony    schedule 21.02.2012