【问题标题】:how can I get the value of a the selected item in a JSpinner?如何在 JSpinner 中获取所选项目的值?
【发布时间】:2012-02-21 15:30:44
【问题描述】:

我正在制作一个使用最大数为 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()); }


}

【问题讨论】:

  • 就我自己而言,如果您有“很多问题”但不描述其中任何一个,很难知道如何提供帮助。尝试编译时是否收到错误消息?是否抛出异常?请提供必要的详细信息,因为这将使您更容易回答您的问题。此外,您还需要重新格式化您的代码,以便代码缩进符合标准,这将使您的代码更容易被其他人阅读。

标签: java swing jspinner changelistener


【解决方案1】:

首先,您的代码中似乎存在无限循环。在您的 jSpinner1StateChanged 函数中,您正在调用 jSpinner1StateChanged(evt),这将导致无限循环。

你是如何创建你的 JSpinner 的?如果您使用整数,则使用SpinnerNumberModel 创建它。当从微调器中获取当前值时,这将简化您的代码。

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

【讨论】:

    猜你喜欢
    • 2015-12-04
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2018-05-01
    • 2013-11-09
    相关资源
    最近更新 更多