2016-04-13 52 views
0

我試圖從JTextFields中讀取內容,然後將內容保存到並行數組中,這將進入readFields()方法,但我不確定從哪裏開始,我是也很新的陣列將JTextField中的內容保存到數組中

我的代碼如下

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class EmployeesApplet extends JApplet implements ActionListener 
{ 
    public JButton    sd = new JButton ("Salaried"); 
    public JButton    hr = new JButton ("Hourly"); 
    public JButton    cm = new JButton ("Commissioned"); 
    public JButton    cl = new JButton ("Clear"); 

    private final int FIELDS  = 8, 
         FIELD_WIDTH = 20; 

    private String[]  strings  = new String[FIELDS]; 
    private TextFieldWithLabel[] tf = new TextFieldWithLabel[FIELDS]; 
    private JTextArea ta   = new JTextArea(5,25); 

    public void init() 
    { 
     String[] s = {"First Name", "Last Name", "Employee ID", "(a) Salaried: Weekly Salary", "(b1) Hourly 1: Rate Per Hour", 
        "(b2) Hourly 2: Hours Worked" , "(c1) Commissioned: Rate", "(c2) Commissioned: Gross Sales" }; 

     //---------------------- 
     // Set up the Structure 
     //---------------------- 

     Container c = getContentPane(); 
     JPanel f = new JPanel(new FlowLayout()); 
     JPanel b = new JPanel(new BorderLayout(2,0)); 

     JPanel glb = new JPanel(new GridLayout(8,1,0,2)); 
     JPanel gtf = new JPanel(new GridLayout(8,1,0,2)); 
     JPanel flb = new JPanel(new FlowLayout()); 


     // Add FlowLayout to the container 
     c.add(f); 
     // Add BorderLayout to the FlowLayout 
     f.add(b); 

     //--------------------------------------- 
     //Add JPanels to the BorderLayout regions 
     //--------------------------------------- 

     // Add JLables to GridLayout in West 
     b.add(glb, BorderLayout.WEST); 
     for (int i = 0; i < tf.length; i++) 
     { 
     tf[i] = new TextFieldWithLabel(s[i], FIELD_WIDTH); 
     glb.add(tf[i].getLabel()); 
     } 

     // Add JTextFeilds to GridLayout in East 
     b.add(gtf, BorderLayout.EAST); 
     for (int i = 0; i < tf.length; i++) 
     { 
     tf[i] = new TextFieldWithLabel(s[i], FIELD_WIDTH); 
     tf[i].getTextField(); 
     gtf.add(tf[i].getTextField()); 
     } 

     // Add JButtons to FlowLayout in South 
     b.add(flb, BorderLayout.SOUTH); 

     flb.add(sd); 
     flb.add(hr); 
     flb.add(cm); 
     flb.add(cl); 

     sd.addActionListener(this); 
     hr.addActionListener(this); 
     cm.addActionListener(this); 
     cl.addActionListener(this); 

     // Add JTextArea and make it not editable 
     f.add(ta); 
     ta.setEditable(false); 

    } 

    //--------------------------------------- 
    // Read all the JTextFields and 
    // save the contents in a parallel array 
    //--------------------------------------- 
    public void readFields() 
    { 
    } 

    public void fieldsExist() 
    { 
    } 

    public void fieldsEmpty() 
    { 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
    } 


} 

和我的其他類,我設置了一些對象

import javax.swing.*; 

public class TextFieldWithLabel 
{ 
    private FormJTextField text_field; 
    private JLabel   label; 
    private final static int WIDTH = 20; 

    public TextFieldWithLabel (String s, int w) 
    { 
    label  = new JLabel(s); 
    text_field = new FormJTextField(w); 
    } 

    public JLabel   getLabel()  {return label;} 
    public FormJTextField getTextField() {return text_field;} 
    public String   getText()  {return text_field.getText();} 


} 

// ----------------------------------- 
// Problem Description: 
// Inheritance from JTextField Class 
// 
// Demonstrates: 
// Inheritance in Java 
// (1) super method 
// (2) private member function 
// (3) private static data members 
// ----------------------------------- 

import javax.swing.*; 
import java.awt.*; 

public class FormJTextField extends JTextField 
{ 
    private final static int FONT_SIZE = 14; 
    private final static int RED_LEVEL = 220; // 0 -> 255 allowed 
    private final static int GREEN_LEVEL = 220; // 0 -> 255 allowed 
    private final static int BLUE_LEVEL = 100; // 0 -> 255 allowed 
    private final static int WIDTH = 20; 


    // ------------------------------------------------------------- 
    // Default constructor creates a JTextField with a default width 
    // ------------------------------------------------------------- 
    public FormJTextField() 
    { 
    super("", WIDTH); 

    } 

    // ---------------------------------------------------- 
    // Create a JTextField with a width equal to the String 
    // length and initially display the supplied String 
    // ---------------------------------------------------- 
    public FormJTextField(String s) 
    { 
    super(s); 

    } 

    // ------------------------------------------------ 
    // Create a JTextField using the supplied width and 
    // initially display the supplied String 
    // ------------------------------------------------ 
    public FormJTextField(String s, int w) 
    { 
    super(s, w); 

    } 

    // ------------------------------------------- 
    // Create a JTextField with the supplied width 
    // ------------------------------------------- 
    public FormJTextField(int w) 
    { 
    super(w); 

    } 



} 
+0

燦你發佈了TextFieldWithLabel對象的位置? –

+0

@ A.Sharma肯定的事 – Beeeee

+0

現在有一個FormJTextField類需要給出。 –

回答

1

好了的,所以conceptu盟友,這是非常基本的Java 101.我鼓勵你仔細看看How to use arrays關於如何使用數組的更多細節。

基本上,你只需要一些類型的循環可以從0數到FIELDS - 1,並採取從每個字段的文本tf數組和值分配給相應的strings元素,例如

public void readFields() 
{ 
    for (int index = 0; index < FIELDS; index++) { 
     strings[index] = tf[index].getText(); 
    } 
}