Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JTable中的JTextField中检索值?_Java_Sql_Swing_Jtable_Jtextfield - Fatal编程技术网

Java 如何从JTable中的JTextField中检索值?

Java 如何从JTable中的JTextField中检索值?,java,sql,swing,jtable,jtextfield,Java,Sql,Swing,Jtable,Jtextfield,让我把问题分成两部分 如何从JTable中的jtextfield检索值? 所有数据之后,如何一次性存储到数据库中? 姓名和年龄应从jbutton1action和 通过单击jbutton2将Jtable的所有数据存储在SQL DB中 下面是我的代码: package tablefilterdemo; public class Tableinputhroughtextbox extends javax.swing.JFrame { public Tableinputhroughtext

让我把问题分成两部分

  • 如何从
    JTable
    中的
    jtextfield
    检索值?
  • 所有数据之后,如何一次性存储到数据库中?
  • 姓名和年龄应从
    jbutton1
    action和 通过单击
    jbutton2
    Jtable
    的所有数据存储在SQL DB中

    下面是我的代码:

    package tablefilterdemo;
    
    
    public class Tableinputhroughtextbox extends javax.swing.JFrame {
    
        public Tableinputhroughtextbox() {
            initComponents();
        }
    
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {
    
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();
            jButton1 = new javax.swing.JButton();
            jtfname = new javax.swing.JTextField();
            jtfage = new javax.swing.JTextField();
            jButton2 = new javax.swing.JButton();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null},
                    {null, null},
                    {null, null},
                    {null, null}
                },
                new String [] {
                    "Name", "Age"
                }
            ));
            jScrollPane1.setViewportView(jTable1);
    
            jButton1.setText("Submit for Table");
    
            jButton2.setText("Submit for SQL");
    
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addGap(29, 29, 29)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(layout.createSequentialGroup()
                            .addGap(53, 53, 53)
                            .addComponent(jtfname, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(46, 46, 46)
                            .addComponent(jtfage, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jButton1)
                            .addGap(18, 18, 18)
                            .addComponent(jButton2)))
                    .addContainerGap(82, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                    .addContainerGap(92, Short.MAX_VALUE)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jButton1)
                        .addComponent(jtfname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jtfage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jButton2))
                    .addGap(47, 47, 47)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 322, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(19, 19, 19))
            );
    
            pack();
        }// </editor-fold>                        
    
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            /* Set the Nimbus look and feel */
            //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            try {
                for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        javax.swing.UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
    
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Tableinputhroughtextbox().setVisible(true);
                }
            });
        }
    
        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTable jTable1;
        private javax.swing.JTextField jtfage;
        private javax.swing.JTextField jtfname;
        // End of variables declaration                   
    }
    
    package tablefilterdemo;
    公共类TableInputRoughTextBox扩展了javax.swing.JFrame{
    公共表puthroughtextbox(){
    初始化组件();
    }
    @抑制警告(“未选中”)
    //                           
    私有组件(){
    jScrollPane1=newjavax.swing.JScrollPane();
    jTable1=newjavax.swing.JTable();
    jButton1=newjavax.swing.JButton();
    jtfname=newjavax.swing.JTextField();
    jtfage=newjavax.swing.JTextField();
    jButton2=newjavax.swing.JButton();
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    jTable1.setModel(新的javax.swing.table.DefaultTableModel(
    新对象[][]{
    {null,null},
    {null,null},
    {null,null},
    {null,null}
    },
    新字符串[]{
    “姓名”、“年龄”
    }
    ));
    jScrollPane1.setViewportView(jTable1);
    jButton1.setText(“提交表格”);
    jButton2.setText(“为SQL提交”);
    javax.swing.GroupLayout=newjavax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(布局);
    layout.setHorizontalGroup(
    createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(29,29,29)
    .addComponent(jScrollPane1、javax.swing.GroupLayout.PREFERRED\u SIZE、javax.swing.GroupLayout.DEFAULT\u SIZE、javax.swing.GroupLayout.PREFERRED\u SIZE))
    .addGroup(layout.createSequentialGroup()
    .addGap(53,53,53)
    .addComponent(jtfname,javax.swing.GroupLayout.PREFERRED\u SIZE,74,javax.swing.GroupLayout.PREFERRED\u SIZE)
    .addGap(46,46,46)
    .addComponent(jtfage,javax.swing.GroupLayout.PREFERRED\u SIZE,74,javax.swing.GroupLayout.PREFERRED\u SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(jButton1)
    .addGap(18,18,18)
    .addComponent(jButton2)))
    .addContainerGap(82,简称最大值))
    );
    layout.setVerticalGroup(
    createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,layout.createSequentialGroup()
    .addContainerGap(92,简称最大值)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(jButton1)
    .addComponent(jtfname,javax.swing.GroupLayout.PREFERRED\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.PREFERRED\u SIZE)
    .addComponent(jtfage,javax.swing.GroupLayout.PREFERRED\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.PREFERRED\u SIZE)
    .addComponent(jButton2))
    .addGap(47,47,47)
    .addComponent(jScrollPane1,javax.swing.GroupLayout.PREFERRED\u SIZE,322,javax.swing.GroupLayout.PREFERRED\u SIZE)
    .addGap(19,19,19))
    );
    包装();
    }//                         
    /**
    *@param指定命令行参数
    */
    公共静态void main(字符串参数[]){
    /*设置Nimbus的外观和感觉*/
    //
    /*如果Nimbus(在JavaSE6中引入)不可用,请使用默认的外观。
    *详情请参阅http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */
    试一试{
    for(javax.swing.UIManager.LookAndFeelInfo:javax.swing.UIManager.getInstalledLookAndFeels()){
    if(“Nimbus”.equals(info.getName())){
    setLookAndFeel(info.getClassName());
    打破
    }
    }
    }捕获(ClassNotFoundException ex){
    java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
    }catch(实例化异常){
    java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
    }捕获(非法访问例外){
    java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
    }catch(javax.swing.UnsupportedLookAndFeelException ex){
    java.util.logging.Logger.getLogger(Tableinputhroughtextbox.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
    }
    //
    /*创建并显示表单*/
    invokeLater(new Runnable()){
    公开募捐{
    新建Tableinputhroughtextbox().setVisible(true);
    }
    });
    }
    //变量声明-不修改
    私有javax.swing.JButton jButton1;
    私有javax.swing.JButton jButton2;
    私有javax.swing.JScrollPane-jScrollPane1;
    私有javax.swing.JTable jTable1;
    私有javax.swing.JTextField jtfage;
    私有javax.sw
    
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.KeyEvent;
    import java.util.Vector;
    
    import javax.swing.*;
    import javax.swing.table.DefaultTableModel;
    
    @SuppressWarnings("serial")
    public class MyTableEg extends JPanel {
       private static final String[] COLUMNS = {"Column A", "Column B"};
       private DefaultTableModel model = new DefaultTableModel(COLUMNS, 0);
       private JTable table = new JTable(model);
       private JTextField fieldA = new JTextField(10);
       private JTextField fieldB = new JTextField(10);
       private JButton button = new JButton(new ButtonAction("Add Data", KeyEvent.VK_A));
    
       public MyTableEg() {
          JPanel topPanel = new JPanel();
          topPanel.add(fieldA);
          topPanel.add(fieldB);
          topPanel.add(button);
    
          setLayout(new BorderLayout());
          add(topPanel, BorderLayout.NORTH);
          add(new JScrollPane(table), BorderLayout.CENTER);
       }
    
       private class ButtonAction extends AbstractAction {
          public ButtonAction(String name, int mnemonic) {
             super(name);
             putValue(MNEMONIC_KEY, mnemonic);
          }
    
          @Override
          public void actionPerformed(ActionEvent evt) {
    
             // ***** here's the important bit of code
    
             Vector<String> rowData = new Vector<String>();  // create a row Vector
             rowData.add(fieldA.getText());    // fill it with data from JTextFields
             rowData.add(fieldB.getText());
             model.addRow(rowData);            // and add to table model
          }
       }
    
       private static void createAndShowGui() {
          JFrame frame = new JFrame("MyTableEg");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.getContentPane().add(new MyTableEg());
          frame.pack();
          frame.setLocationRelativeTo(null);
          frame.setVisible(true);
       }
    
       public static void main(String[] args) {
          SwingUtilities.invokeLater(new Runnable() {
             public void run() {
                createAndShowGui();
             }
          });
       }
    }
    
    //I guess you already got value into your JTextField
    //Here I'm getting only two column into my JTable, you can take as many as you need
    
      jbutton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                 //TODO Auto-generated method stub
    
                DefaultTableModel model=(DefaultTableModel) table.getModel();
    
                try 
                {
                    String s1,s2;
                    s1=tfield1.getText();
                    s2=tfield2.getText();
                    model.addRow(new Object[] {s1,s2});
    
                }
                catch(Exception ae){ 
                    ae.printStackTrace();
    
                    }
            }
        });