动态添加按钮到Java表单

时间:2017-05-31 07:31:40

标签: java swing sqlite

我正在制作一个Java程序来保存我的所有网站数据。 该计划如下。

我可以添加网站,网址,登录名,密码,IP,托管等。为此,它会创建一个表“websiteinf”。

每次我添加一个新网站。它会自动在我的数据库中创建另一个新表。该表是bl_websitename。对于添加的每个网站,表格都不同。 bl_website1,bl_website2 ......但它始终以bl _开头。

我想创建另一个名为backlinks.java的JFrame表单

我首先想要为数据库中的每个表添加按钮,从bl _

开始

我希望这是动态发生的。所以每次我注册一个新网站。我的backlinks.java表单中会自动出现一个新按钮。

我知道如何手动完成。但我想知道是否可以在创建以bl_开头的新表时自动创建按钮。

在这一方面,一些帮助会非常好。

这是将新网站添加到我的数据库table =>的代码。网站 它会为每个网站自动创建一个新的数据库表=> bl_mywebsite

     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         


int x = JOptionPane.showConfirmDialog(null, "This Will Add New Website!","Add New Website",JOptionPane.YES_NO_OPTION);
if (x==0){




try { String sql ="insert into website " + "(website,url,login,password," + 
        "hostingaccount,hostingip,hostingusername," + "hostingpass) values (?,?,?,?,?,?,?,?) ";
pst=conn.prepareStatement(sql);
pst.setString(1,txt_website.getText());
pst.setString(2,txt_url.getText());
pst.setString(3,txt_login.getText());
pst.setString(4,txt_password.getText());
pst.setString(5,txt_hostingaccount.getText()); 
pst.setString(6,txt_hostingip.getText());
pst.setString(7,txt_hostingusername.getText()); 
pst.setString(8,txt_hostingpassword.getText());

pst.execute();

JOptionPane.showMessageDialog(null,"Data is saved successfully"); 


       String add1 = txt_website.getText();

         String sql2 = "CREATE TABLE IF NOT EXISTS 'bl_"+add1+"' (\n"
                + " id integer PRIMARY KEY,\n"
                 + "    fullurl text NOT NULL,\n"
                + " fromm text NOT NULL,\n"
                + " too text NOT NULL,\n"
                  + "   anchor text NOT NULL,\n"
                  + "   date text NOT NULL);";



        pst = conn.prepareStatement(sql2);
        pst.execute();
        JOptionPane.showMessageDialog(null, "New website backlink profile added:\n"+"Website: '"+add1+"'" );


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

finally 
{ try
{ rs.close(); pst.close(); } 
catch(Exception e){ } }
        // TODO add your handling code here:
}                                      
        // TODO add your handling code here:
    }   

此代码位于addWebsite.java

我想做的是从addWebsite.java里面,在backlinks.java中创建一个按钮,其中按钮名称将是刚添加的网站名称。

当我点击它时,我可以添加新的反向链接到JFrame表单。 我知道怎么做。

我唯一需要帮助的是在addWebsite.java上添加新网站并创建新表bl_name-of-website时,在backlinks.java上创建一个按钮。

所以我应该能够在addlinks.java中执行的addWebsite.java中编写代码

对不起,如果这有点令人困惑。但我真的不知道更好的解释方法。我已经在网上寻找这个约12个小时:-)

   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
int x = JOptionPane.showConfirmDialog(null, "This Will Add New Backlink!","Add New Backlink",JOptionPane.YES_NO_OPTION);
if (x==0){




try { String sql ="insert into bl_kruidenland (fromm,too,anchor) values (?,?,?) ";
pst=conn.prepareStatement(sql);
pst.setString(1,txt_blfrom.getText());
pst.setString(2,txt_blto.getText());
pst.setString(3,txt_anchor.getText());

pst.execute();

JOptionPane.showMessageDialog(null,"Backlink is saved successfully"); 





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

finally 
{ try
{ rs.close(); pst.close(); } 
catch(Exception e){ } }
        // TODO add your handling code here:
}       






        // TODO add your handling code here:
    }      

这是我的backlinks.java,我手动添加了一个按钮“kruidenland”。单击该按钮时,它会将反向链接信息添加到表bl_kruidenland。

我希望在创建bl_somewebsite时,此按钮会自动显示。然后在单击按钮时运行相同的SQL自动。唯一改变的是表bl_kruidenland到表bl_SomeNewWebsiteIjustAdded。

在这里,我在backlinks.java中添加了一个新的“保存”按钮

   private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         



int x = JOptionPane.showConfirmDialog(null, "This Will Add New Backlink!","Add New Backlink",JOptionPane.YES_NO_OPTION);
if (x==0){

String add1 = txt_search.getText();



try { String sql ="insert into bl_"+add1+" (fromm,too,anchor) values (?,?,?) ";
pst=conn.prepareStatement(sql);
pst.setString(1,txt_blfrom.getText());
pst.setString(2,txt_blto.getText());
pst.setString(3,txt_anchor.getText());

pst.execute();

JOptionPane.showMessageDialog(null,"Backlink is saved successfully"); 





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

finally 
{ try
{ rs.close(); pst.close(); } 
catch(Exception e){ } }
        // TODO add your handling code here:
}   

这样我就可以在搜索栏中输入网站名称。没有扩展或协议(https和.com)

因此,它将使用表bl_SearchTextWhichIsTypedIn,因此保存在该表中。

问题解决了。但是,如果每次都有一个新按钮,它仍然会更好。

无论如何有任何想法???

0 个答案:

没有答案