Как я могу получить значение выбранного элемента в 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();