我正在制作一个使用最大数量为 30 的 JSpinner 的应用程序,我应该从这个 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()); }
}
其一,代码中似乎存在无限循环。在 jSpinner1StateChanged 函数中,您正在调用jSpinner1StateChanged(evt)
,这将导致无限循环。
你是如何创建 JSpinner 的?如果您使用的是整数,则使用 a 创建它SpinnerNumberModel
。当从微调器中获取当前值时,这将简化您的代码。
jSpinner1 = new JSpinner(new SpinnerNumberModel(0, 0, 30, 1));
Integer currentValue = (Integer)jSpinner1.getValue();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)