2017-04-21 27 views
-2

我想列出所有的数据库到jlist,其工作正常只有我不能列入JLIST的问题。从mongodb添加值到jlist java

 private void dblist() throws UnknownHostException { 
      MongoClient mongo = new MongoClient("localhost", 27017); 
      java.util.List<String> dbs = mongo.getDatabaseNames(); 

      for (String a : dbs) { 
       System.out.println(a); // here i am already getting value 
             // just need to add into jlist 
       System.out.println(a); 

       jlist.add(a); // adding value into Jlist but its giving 
           // me error 
      } 
     } 
    } 

System.out.println(a) result

+0

'jlist'不是你的问题分配的Java。请尝试显示[mcve] –

回答

0

你可以试试这个将其转换?;

String[] x = new String[dbs.size()]; 
JList<String> list = new JList<>(dbs.toArray(x)); 

更新:

你可以试试这个请;

yourJlist = new JList(dbs.toArray()); 

更新2:

此代码工作你为什么不尝试这样;

MongoClient mongo = new MongoClient("localhost", 27017); 
MongoCursor<String> dbs = mongo.listDatabaseNames().iterator(); 
while(dbs.hasNext()) { 
    System.out.println(dbs.next()); 
} 
+0

仍然给我一个错误,java.lang.NullPointerException @MuratGüner –

+0

我已经添加了另一个代码,可以检查它吗? –

+0

错误不再,但列表似乎是空白@MuratGüner –

0

我已经解决了它,所以在将来如果有人看这个问题,他们可以参考这个答案。

使用MongoDB的Java驱动程序3.4.2

的MongoDB到JList的从Java的JList

try{ 
    String host=hname.getText(); 
    String port=spport.getValue().toString(); 
    Integer pt = Integer.valueOf(port);       
     try (MongoClient mongoClient = new MongoClient(new 
     ServerAddress(host, pt),    
       MongoClientOptions.builder() 
         .serverSelectionTimeout(2000) 
         .build())) { 
      DB db = mongoClient.getDB(jlist.getSelectedValue().toString()); 
      DBbtn.setText("DB Connected"); 
      DBbtn.setBackground (new Color(109,184,0)); 
      DBbtn.setForeground(Color.WHITE); 
      Set<String> colls = db.getCollectionNames(); 

      DefaultListModel listModel = new DefaultListModel(); 
      colls.stream().map((s) -> { 
       listModel.addElement(s); 
       return s; 
      }).forEach((s) -> { 
       System.out.println(s); 
      }); 
      collectionss.setModel(listModel); // collectionss is jlist name 
     } 

    } catch (Exception e) { 
    } 

插入到MongoDB的

try{   
     String logid="Log-"+logname.getText(); 
     JList dataList=(loglist); 
     int sixe=dataList.getModel().getSize(); 
    ArrayList arrayList = new ArrayList(); 
    for (int i = 0; i <sixe; i++) { 
    arrayList.add(dataList.getModel().getElementAt(i)); 
    server.total.setText("Total Log-"+i); 

    } 
    System.out.println(arrayList); 
    Iterator itr = arrayList.iterator(); 
    String host=hname.getText(); 
    String port=spport.getValue().toString();      
    MongoClient mongoClient = new MongoClient(asList(new ServerAddress(host+":"+port)), 
            singletonList(MongoCredential.createCredential(uname.getText(), 
                        dbname.getText(), 
                        pass.getText().toCharArray())), 
            MongoClientOptions.builder().serverSelectionTimeout(2000).build()); 

     DB db = mongoClient.getDB(jlist.getSelectedValue().toString()); 
     DBCollection bookCollection = 
     db.getCollection(collectionss.getSelectedValue().toString()); 
     BasicDBObject doc = new BasicDBObject(logid, arrayList); 
     bookCollection.insert(doc); 
     server.consolelog.setText("INFO: Data is inserted succsesfully"); 

     }catch(Exception e){ 
      server.consolelog.setText(e.toString()); 
     }