Mercurial > hg > mep
view SubjectDataPanel.java @ 11:85b03f084d63
Fix incorrect info about zero-indexing in README.
Ignore-this: ed7a491d54fa129a7e2e9bb08c20f17a
author | Marcus Pearce <m.pearce@gold.ac.uk> |
---|---|
date | Fri, 04 Nov 2011 18:21:49 +0000 |
parents | 4031cbb02f08 |
children | 284c23df4652 |
line wrap: on
line source
/*============================================================================= * File: SubjectDataPanel.java * Author: Marcus Pearce <m.pearce@gold.ac.uk> * Created: <2007-02-14 11:28:27 marcusp> * Time-stamp: <2008-03-11 18:09:47 marcusp> *============================================================================= */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.ArrayList; public class SubjectDataPanel extends JPanel { /* variables */ private JTextField ageField, trainingField, topfield, instrumentField, participationField, listeningField, nationalityField; private JComboBox sexBox, handBox, hearingBox, instrumentBox, trainingBox, ethnicityBox; private JButton finishButton; private SubjectResults results; /* accessors */ public JButton getFinishButton() { return finishButton; } /* constructor */ public SubjectDataPanel(ExperimentGui gui, SubjectResults sr) { results = sr; JPanel questionsPanel = new JPanel(); questionsPanel.setLayout(new GridLayout(12,1)); questionsPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(""),BorderFactory.createEmptyBorder(5,5,5,5)), questionsPanel.getBorder())); String[] yesNoOptions = { "", "Yes", "No" }; // Age ageField = new JTextField(10); questionsPanel.add(new JLabel("Age: ")); questionsPanel.add(ageField); // Gender String[] sexBoxOptions = { "", "Male", "Female" }; sexBox = new JComboBox(sexBoxOptions); sexBox.setSelectedIndex(0); questionsPanel.add(new JLabel("Gender: ")); questionsPanel.add(sexBox); // Ethnicity String[] ethnicityBoxOptions = { "", "Asian", "Black", "Chinese", "Mixed", "Other", "White", "Undisclosed" }; ethnicityBox = new JComboBox(ethnicityBoxOptions); questionsPanel.add(new JLabel("Ethnicity: ")); questionsPanel.add(ethnicityBox); // Nationality nationalityField = new JTextField(10); questionsPanel.add(new JLabel("Nationality: ")); questionsPanel.add(nationalityField); // Handedness String[] handBoxOptions = { "", "Right-handed", "Left-handed" }; handBox = new JComboBox(handBoxOptions); handBox.setSelectedIndex(0); questionsPanel.add(new JLabel("Handedness: ")); questionsPanel.add(handBox); // Hearing hearingBox = new JComboBox(yesNoOptions); questionsPanel.add(new JLabel("Do you have any hearing difficulties?")); questionsPanel.add(hearingBox); // Instrument / Sing instrumentBox = new JComboBox(yesNoOptions); instrumentField = new JTextField(10); questionsPanel.add(new JLabel("Do you play an instrument/sing?")); questionsPanel.add(instrumentBox); questionsPanel.add(new JLabel("If so, for how many years have you played/sung? ")); questionsPanel.add(instrumentField); // Musical Training trainingBox = new JComboBox(yesNoOptions); trainingField = new JTextField(10); questionsPanel.add(new JLabel("Have you had formal musical training?")); questionsPanel.add(trainingBox); questionsPanel.add(new JLabel("If so, for how many years?")); questionsPanel.add(trainingField); // Musical Participation participationField = new JTextField(10); questionsPanel.add(new JLabel("How many hours a week do you spend practising/participating in music?")); questionsPanel.add(participationField); // Musical Listening listeningField = new JTextField(10); questionsPanel.add(new JLabel("How many hours per day do you spend listening to music?")); questionsPanel.add(listeningField); // Put it all together JPanel finishPanel = new JPanel(); finishButton = new JButton("Finish."); finishPanel.add(finishButton); JPanel topPanel = new JPanel(); topPanel.add(new JLabel("Please answer the following questions:"), BorderLayout.NORTH); JPanel questionsPanel2 = new JPanel(); questionsPanel2.setLayout(new BorderLayout()); questionsPanel2.add(questionsPanel, BorderLayout.NORTH); //getRootPane().setDefaultButton(finishButton); this.setLayout (new BorderLayout()); add(topPanel, BorderLayout.NORTH); add(questionsPanel2,BorderLayout.CENTER); add(finishPanel,BorderLayout.SOUTH); } public void storeData() { ArrayList subjectData = new ArrayList(); String[] id = {"ID", Integer.toString(results.getSubjectID())}; subjectData.add(id); String[] age = {"Age",ageField.getText()}; subjectData.add(age); String[] sex = {"Gender",(String)sexBox.getSelectedItem()}; subjectData.add(sex); String[] hand = {"Hand",(String)handBox.getSelectedItem()}; subjectData.add(hand); String[] ethnicity = {"Ethnic",(String)ethnicityBox.getSelectedItem()}; subjectData.add(ethnicity); String[] nationality = {"Nationality",nationalityField.getText()}; subjectData.add(nationality); String[] hear = {"HearingDiff", (String)hearingBox.getSelectedItem()}; subjectData.add(hear); String[] instrument1 = {"Instrument", (String)instrumentBox.getSelectedItem()}; subjectData.add(instrument1); String[] instrument2 = {"InstrumentYears",instrumentField.getText()}; subjectData.add(instrument2); String[] training1 = {"Training", (String)trainingBox.getSelectedItem()}; subjectData.add(training1); String[] training2 = {"TrainingYears",trainingField.getText()}; subjectData.add(training2); String[] participation = {"Participation",participationField.getText()}; subjectData.add(participation); String[] listening = {"Listening",listeningField.getText()}; subjectData.add(listening); results.setSubjectData(subjectData); } public boolean allDataEntered () { if (ageField.getText().equals("") || sexBox.getSelectedItem().equals("") || handBox.getSelectedItem().equals("") || ethnicityBox.getSelectedItem().equals("") || nationalityField.getText().equals("") || hearingBox.getSelectedItem().equals("") || instrumentBox.getSelectedItem().equals("") || instrumentField.getText().equals("") || trainingBox.getSelectedItem().equals("") || trainingField.getText().equals("") || participationField.getText().equals("") || listeningField.getText().equals("")) return false; else return true; } public void addFinishButtonListener(ActionListener al) { finishButton.addActionListener(al); } }