在try块中返回一个字符串

时间:2012-11-22 11:41:41

标签: java return try-catch

我是一般的编程新手,我必须用Java创建一个IP扫描程序,而且我现在已经碰壁了。在朋友的帮助下,我能够从jFrame获取IP地址并将其转换为IP号码。从那里我把它传递给一个扫描地址的公共字符串。它目前在没有问题的情况下循环遍历地址,但是我不知道如何从try块中取出结果以显示在文本块中,就像你期望IP扫描器那样。这是我的代码:

private void jBtnPSScanActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:


        //Get text from text boxes
        String pingSSIP1 = jTxtPSSIPOne.getText();
        String pingSSIP2 = jTxtPSSIPTwo.getText();
        String pingSSIP3 = jTxtPSSIPThree.getText();
        String pingSSIP4 = jTxtPSSIPFour.getText();
        String pingSEIP1 = jTxtPSEIPOne.getText();
        String pingSEIP2 = jTxtPSEIPTwo.getText();
        String pingSEIP3 = jTxtPSEIPThree.getText();
        String pingSEIP4 = jTxtPSEIPFour.getText();

        //Convert text into IP Numbers      
        long ipNumberS = 0;
        ipNumberS = ipNumberS + (Long.parseLong(pingSSIP1)*256*256*256) ;
        ipNumberS = ipNumberS + (Long.parseLong(pingSSIP2)*256*256) ;
        ipNumberS = ipNumberS + (Long.parseLong(pingSSIP3)*256) ;
        ipNumberS = ipNumberS + (Long.parseLong(pingSSIP4)) ;
        System.out.println (ipNumberS);
        long ipNumberE = 0;
        ipNumberE = ipNumberE + (Long.parseLong(pingSEIP1)*256*256*256) ;
        ipNumberE = ipNumberE + (Long.parseLong(pingSEIP2)*256*256) ;
        ipNumberE = ipNumberE + (Long.parseLong(pingSEIP3)*256) ;
        ipNumberE = ipNumberE + (Long.parseLong(pingSEIP4)) ;
        System.out.println (ipNumberE);


        String startAddress = Long.toString(ipNumberS);
        String endAddress = Long.toString(ipNumberE);

        String returnIP = pingSweep(startAddress, endAddress, ipNumberS, ipNumberE);

        System.out.println(returnIP);

        //Update jTxtBlock with returnIP and result

    }                                          

并且:

public String pingSweep (String startAddress, String endAddress, long ipNumberS, long ipNumberE) 
{
    String ip = "";


    for (long currIP = ipNumberS; currIP < ipNumberE; currIP++)
    {
        try {
            ip = Long.toString(currIP) ;
            System.out.println(currIP);
            InetAddress host = InetAddress.getByName(ip);
            System.out.println("Host Reachable? " + host.isReachable(4000));
            System.out.println(currIP);
            System.out.println(ip);
            ip = ip + " " + currIP + " " + host.isReachable(4000);
        }
        catch (UnknownHostException ex) {
            System.err.println(ex);
            break;
        }
        catch (IOException ex) {
            System.err.println(ex);
            break;
        }

    }
    return ip;
}

提前致谢!

马修

1 个答案:

答案 0 :(得分:1)

所以这就是你所拥有的。要在JFrame上显示的字符串?是吗 ?

您可以在JFrame上添加标签并将字符串传递给该标签

请参阅How to Label了解详情

PS:如果你想使用inputText,textArea或者你喜欢的任何东西,那么使用label只是一个显示只读文本的建议

<强>更新

OP确认他正在使用TextArea

提示:jTextArea.append(host.isRechable)方法在ping接收响应时将新值附加到jTextArea。