han*_*nem 4 java swing jspinner changelistener
我正在创建一个使用最大数量为30的JSpinner的应用程序,我应该从这个JSpinner中选择一个值并将一个String带到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()); }
}
Run Code Online (Sandbox Code Playgroud)
小智 18
首先,您的代码中似乎有一个无限循环.在jSpinner1StateChanged函数中,您正在调用jSpinner1StateChanged(evt),这将导致无限循环.
你是如何创建JSpinner的?如果你正在使用整数,那么使用一个创建它SpinnerNumberModel.当从微调器中获取当前值时,这将简化代码.
jSpinner1 = new JSpinner(new SpinnerNumberModel(0, 0, 30, 1));
Integer currentValue = (Integer)jSpinner1.getValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45272 次 |
| 最近记录: |