2013-10-05 35 views
0

我对编程和java相当陌生。 我想知道如何删除jtextarea上的第一行。 虽然我可以发布我的应用程序的编码,但我不认为这是必要的,加上我在电话上。 请告诉我如何删除jtextfield java中的第一行。如何删除jTextArea的第一行

好的...继承人什么我试图做 - >

String x = (String) jComboBox1.getSelectedItem(); 
String z = JOptionPane.showInputDialog("Please enter new name for Database"); 
     try{ 
     Class.forName("java.sql.DriverManager"); 
     Connection con = (Connection) 
     DriverManager.getConnection("jdbc:mysql://localhost:"+GlobalParams.portvar+"/",""+k,""+j); 
     Statement stmnt = (Statement) con.createStatement(); 
     String query3 = "Create database "+z; 
     stmnt.executeUpdate(query3); 
     String query = "use "+x; 
     stmnt.executeQuery(query); 
     String query2 = "show tables"; 
     Statement stmnt2 = (Statement) con.createStatement(); 
     ResultSet rs = stmnt2.executeQuery(query2); 
     while (rs.next()){ 
     String dname = rs.getString("Tables_in_"+x); 
     if(jTextArea1.getText().equals("")){ 
     jTextArea1.setText(jTextArea1.getText()+dname); 
     } 
     else{ 
      jTextArea1.setText(jTextArea1.getText()+"\n"+dname); 
     } 
     String y = jTextArea1.getText(); 
     Scanner scanner = new Scanner(y); 
while (scanner.hasNextLine()) { 
     String line = scanner.nextLine(); 
     String query4 = "RENAME TABLE "+x+"."+line+" TO "+z+"."+line; 
     //I will add remove first line code here.-------------------------------------- 
     stmnt.executeUpdate(query4); 
     String query5 = "drop database "+x; 
     stmnt.executeUpdate(query5); 
}}} 

    catch(Exception e){ 
     JOptionPane.showMessageDialog(this,e.getMessage()); 
    } 

正如你所看到的,我想创建一个程序,它重命名数据库MySQL的代码。它工作正常,但它只移动一个表,然后在新数据库中出现“表已存在(与其移动的表名相同)”的错误。由于它从textarea中的行中获取表名,所以我怀疑它一次又一次地读取同一行。所以我的想法是每次代码完成时删除第一行,以避免两次使用相同的表名。 要清楚我想要做 - > 假设我的文字区域包含以下线 - 什么>

line 1 
line 2 
line 3 
line 4 
so on... 

我想那之后的代码执行,1号线应该被删除,新出现在textarea的文字应是 - >

line 2 
line 3 
line 4 
line 5 
so on... 
+1

我们一般不喜欢强行不要在没有回答的情况下回答。请回到家,发布你的尝试,然后我们会帮你。此外,我不知道你的意思是通过删除第一行,因此需要代码。 –

+0

好吧好吧...请不要让soooo许多拇指下降:o我是编程和这个网站的新手,我真的不知道如何去这里。无论如何,我修改了我的帖子并添加了您提问的详细信息。 – Hoobla

回答

1

只需拨打scanner.nextLine()创建后Scanner

Scanner scanner = new Scanner(y); 
if (scanner.hasNextLine()) // Skips first line 
    scanner.nextLine(); 
while (scanner.hasNextLine()) { 
    String line = scanner.nextLine(); 
    ... 
} 
+0

谢谢一堆先生! – Hoobla

+0

@ user2828458不客气:) – Matthieu

+0

其实,先生,我刚刚从各方面测试了这个命令(之前我很着急,只是检查它是否给出了异常),我只注意到它只是复制了最后一个表(说我的数据库是否有3个表,table1/table2/table3;然后它只复制表3)。所以我认为唯一更好的方法是在每次执行后从textarea中删除第一行。所以请告诉我从textarea中删除第一行的命令。 – Hoobla