2016-04-13 28 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) 
    { 
    } 


} 

を下回っており、conceptuので、私は

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

ができ、例えば、FIELDS - 10から数えるとtf配列内の各フィールドからテキストを取得し、対応するstrings要素に値を割り当てることができ、ループのいくつかの種類を必要としますTextFieldWithLabelオブジェクトを取得した場所を投稿しますか? –

+0

@ A.Sharmaのこと – Beeeee

+0

FormJTextFieldクラスが必要です。 –

答えて

1

オーケーオブジェクトの一部を設定する私の他のクラス、これはかなり基本的なJava 101です。配列の使用方法の詳細については、How to use arraysを詳しく見てください。

は基本的に、あなただけの

public void readFields() 
{ 
    for (int index = 0; index < FIELDS; index++) { 
     strings[index] = tf[index].getText(); 
    } 
} 
関連する問題