示例 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。