有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java swing JPanel将数据从Textarea保存到字符串变量

我有一个GUI,它有一个文本区域和一个“保存按钮”。 我希望在按下按钮时保存写入文本区域的文本。到目前为止,我已经编写了以下代码:

   //Creates textbox
   JTextArea text = new JTextArea();
   text.setBounds(48, 44, 160, 16); //int (x,y,width,height)

 //Button
 JButton saveButton = new JButton("Save");
 saveButton.setBounds(10, 185, 120, 20); //int (x,y,width,height)

我还将其添加到JPanel中。一切看起来都像它应该的那样,我只是不知道如何保存写在文本区的文本,我尝试过用谷歌搜索它,但似乎有很多方法可以做到这一点,我不知道如何以我理解的简单方式实现它。谢谢

编辑: 我想将数据保存到字符串中,以便将其保存到数据库中


共 (3) 个答案

  1. # 1 楼答案

    这将给你一个大致的想法,你可以继续

    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost/yourtablename";
    
    //  Database credentials
    static final String USER = "username";
    static final String PASS = "password";    
    Connection conn = null;
    Statement stmt = null;
    
    JButton saveButton = new JButton("Save");
    saveButton.addActionListener(new ActionListener() {
    
        @Override
        public void actionPerformed(ActionEvent arg0) {
            String areaText = text.getText();
            Class.forName("com.mysql.jdbc.Driver");
    
    
           System.out.println("Connecting to database...");
           conn = DriverManager.getConnection(DB_URL,USER,PASS);
    
    
           System.out.println("Creating statement...");
           stmt = conn.createStatement();
           String sql;
           sql = "insert into your_table_name values("+areaText+")";
           ResultSet rs = stmt.executeUpdate(sql);
        }
    });
    
  2. # 2 楼答案

    您需要在按钮中添加ActionListener,并将文本保存在actionPerformed()方法中:

        JButton saveButton = new JButton("Save");
        saveButton.addActionListener(new ActionListener() {
    
            @Override
            public void actionPerformed(ActionEvent arg0) {
                String areaText = text.getText();
                //saveText(areaText);
            }
        });
    

    如果text变量是本地变量,则需要将其设置为final

    阅读关于^{}的文章

    也使用LayoutManager代替setBounds()tutorial

  3. # 3 楼答案

    如果要在数据库中保存。然后您需要按照这些步骤进行操作

    1. 选择一个数据库服务器(MySQL、Derby)
    2. 创建数据库并连接到数据库。学习如何连接
    3. 根据需要创建表并定义列
    4. 在actionPerformed方法处执行insert命令

    下面是DB连接的示例代码

     Class.forName("com.mysql.jdbc.Driver");// For MySQL
     Connection con = DriverManager.getConnection(url,UN, PW);
    

    下面是按钮ActionListener的示例代码

     JButton saveButton = new JButton("Save");
     saveButton.addActionListener(new ActionListener() {
    
        @Override
        public void actionPerformed(ActionEvent arg0) {
            String areaText = text.getText();
            //Execute database insert command to save at Database.
           PreparedStatement stmt=con.createPreaparedStatement(
                              "insert into table_name(col_name) values(?)");
            stmt.setString(1, areaText);
            stmt.executeUpdate();// To save into DB.
        }
    });