2013-03-31 52 views
1

我想單擊按鈕save來提取值。從JTextFieldJTable行和列中提取值。只需要一個大概的想法如何提取並保存不同變量的值。我想在按鈕保存下執行這些保存操作。從指定表格中提取值

package build; 

import java.awt.*; 
import javax.swing.*; 
import com.jgoodies.forms.layout.FormLayout; 
import com.jgoodies.forms.layout.ColumnSpec; 
import com.jgoodies.forms.layout.RowSpec; 
import com.jgoodies.forms.factories.FormFactory; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.border.TitledBorder; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

public class Table_Edit { 

    private JTextField textField; 
    private JTable table; 
    private String Table_Name = new String(); 

    public Table_Edit() { 
     JFrame frame = new JFrame("Table"); 

     frame.setSize(600, 400); 
     frame.getContentPane().setLayout(new FormLayout(new ColumnSpec[]{ 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      FormFactory.DEFAULT_COLSPEC, 
      FormFactory.RELATED_GAP_COLSPEC, 
      ColumnSpec.decode("default:grow"), 
      FormFactory.RELATED_GAP_COLSPEC, 
      ColumnSpec.decode("default:grow"),}, 
      new RowSpec[]{ 
      FormFactory.RELATED_GAP_ROWSPEC, 
      FormFactory.DEFAULT_ROWSPEC, 
      FormFactory.RELATED_GAP_ROWSPEC, 
      RowSpec.decode("default:grow"), 
      FormFactory.RELATED_GAP_ROWSPEC, 
      RowSpec.decode("default:grow"),})); 

     JLabel lblTableName = new JLabel("Table Name :"); 
     frame.getContentPane().add(lblTableName, "2, 2, right, default"); 

     textField = new JTextField(Table_Name); 
     textField.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 
     frame.getContentPane().add(textField, "4, 2, 9, 1, left, center"); 
     textField.setColumns(10); 

     JScrollPane scrollPane = new JScrollPane(); 
     frame.getContentPane().add(scrollPane, "3, 4, 29, 1, fill, fill"); 

     table = new JTable(); 
     table.setFillsViewportHeight(true); 
     scrollPane.setViewportView(table); 
     table.setBorder(new TitledBorder(null, "", 
      TitledBorder.CENTER, TitledBorder.TOP, null, null)); 
     table.setColumnSelectionAllowed(true); 
     table.setCellSelectionEnabled(true); 
     table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); 
     table.setModel(new DefaultTableModel(
      new Object[][]{ 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null},}, 
      new String[]{ 
      "Column Name", "Data Type", "NN", "PK" 
     }) { 
      Class[] columnTypes = new Class[]{ 
       String.class, Object.class, Boolean.class, Boolean.class 
      }; 

      public Class getColumnClass(int columnIndex) { 
       return columnTypes[columnIndex]; 
      } 
     }); 
     table.getColumnModel().getColumn(0).setResizable(false); 
     table.getColumnModel().getColumn(0).setPreferredWidth(106); 
     table.getColumnModel().getColumn(1).setResizable(false); 
     table.getColumnModel().getColumn(1).setPreferredWidth(92); 
     table.getColumnModel().getColumn(2).setResizable(false); 
     table.getColumnModel().getColumn(2).setPreferredWidth(26); 
     table.getColumnModel().getColumn(3).setResizable(false); 
     table.getColumnModel().getColumn(3).setPreferredWidth(30); 

     JPanel panel = new JPanel(); 
     frame.getContentPane().add(panel, "32, 6, right, fill"); 

     JButton Save = new JButton("Save"); 
     Save.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 

       System.out.print(Table_Name); 
      } 
     }); 
     Save.setMaximumSize(new Dimension(33, 19)); 
     Save.setIcon(new ImageIcon(Table_Edit.class.getResource(
      "/com/sun/java/swing/plaf/windows/icons/TreeOpen.gif"))); 
     panel.add(Save); 

     JButton btnNewButton_1 = new JButton("Exit"); 
     btnNewButton_1.setIcon(new ImageIcon(Table_Edit.class.getResource(
      "/javax/swing/plaf/metal/icons/ocean/close.gif"))); 
     panel.add(btnNewButton_1); 


     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     new Table_Edit(); 
    } 
} 
+0

1爲[SSCCE]表示(http://sscce.org/)。 – trashgod

回答

1

除了調用textField.getText(),你可以獲得一個參考你的表的模型,並使用getValueAt()在值迭代:

JButton save = new JButton("Save"); 
save.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     System.out.println(textField.getText()); 
     TableModel model = table.getModel(); 
     for (int r = 0; r < model.getRowCount(); r++) { 
      for (int c = 0; c < model.getColumnCount(); c++) { 
       System.out.print(model.getValueAt(r, c) + " "); 
      } 
      System.out.println(); 
     } 
    } 
}); 
0

從JTextField中可以調用getText方法來獲取文本框的內容的形式String,如:

String myString = textField.getText(); 
+0

和來自JTable的單元格? – Asdakamessoy

+0

我不知道JTable。,對不起 – Abubakkar

0

JTable使用getValueAt方法來檢索值。

JTextField使用textField.getText()通過@Abu