1

示例 1

String serverIP=null;
    try {
        File file = new File("serverIP.txt");
        if(file.exists()){
            serverIP = new Scanner(new File("serverIP.txt")).useDelimiter("\\Z").next();
            rmi = (ServerInterface) Naming.lookup("//"+ serverIP +":" +"2323" + "/server");
        }else{
            PrintWriter out = new PrintWriter("serverIP.txt");
            serverIP = JOptionPane.showInputDialog ("Please enter Server IP Address: "); 
            out.println(serverIP);
            out.close();
            rmi = (ServerInterface) Naming.lookup("//"+ serverIP +":" +"2323" + "/server");
        }
    }

上面的代码是用户第一次输入的时候,第二次不需要重新输入服务器IP地址,因为它已经保存了,它会查找文件。

我的问题在这里:

private static PcapIf device;
private static List<PcapIf> alldevs = new ArrayList<PcapIf>();

public static void getNIC(){
    int r = Pcap.findAllDevs(alldevs, errbuf);
    if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
        System.err.printf("Can't read list of devices, error is %s\n",
                errbuf.toString());
    }

    //make the device name readable inside combobox
    String[] deviceStrings = new String[getDevices().size()];
    for (int i = 0; i < deviceStrings.length; i++) {
        String deviceString = getDevices().get(i).toString();
        deviceStrings[i] = deviceString.substring(deviceString
                .indexOf("desc=")
                + "desc=".length(), deviceString.indexOf(">"));
    }

    //choose NIC
    //Starting from here i using the same way as 'EXAMPLE 1' but it cant
    devicesCB = new JComboBox(deviceStrings);
    devicesCB.setEditable(true);
    devicesCB.setSelectedIndex(0);
    JOptionPane.showMessageDialog( null, devicesCB, "Please select a NIC", JOptionPane.QUESTION_MESSAGE);
    device = alldevs.get(devicesCB.getSelectedIndex());
}

上面的代码是获取网卡列表并使用组合框进行选择,现在我想让它自动选择我之前所做的选择。我不能使用示例 1,因为设备数据类型是 PcapIf。

4

0 回答 0