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();
}
}
});