Witam!
Mam taki kawałek kodu:
Główna klasa Frame:
package package_;
import javax.swing.*;
import java.awt.*;
/**
* Created by nmrowka on 23.07.17.
*/
public class Frame extends JPanel {
private JButton buttonAdd = new JButton("Dodaj");
private JButton buttonRmv = new JButton("Usuń");
private JTextField txtName = new JTextField(10);
private JTextField txtSurname = new JTextField(10);
private JTextField txtAge = new JTextField(3);
private JLabel labelName = new JLabel("Imię");
private JLabel labelSurname = new JLabel("Nazwisko");
private JLabel labelAge = new JLabel("Wiek");
private JLabel jLabel = new JLabel("Podgląd");
private DefaultListModel defaultListModel;
private JList list;
public Frame(){
super (new BorderLayout());
defaultListModel = new DefaultListModel();
list = new JList(defaultListModel);
JScrollPane jScrollPane = new JScrollPane(list);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSelectedIndex(0);
list.setVisibleRowCount(5);
AddListener addListener = new AddListener();
buttonAdd.addActionListener(addListener);
RemoveListener removeListener = new RemoveListener();
buttonRmv.addActionListener(removeListener);
JPanel labelsAndTextFieldsName = new JPanel();
labelsAndTextFieldsName.setLayout(new BoxLayout(labelsAndTextFieldsName,BoxLayout.X_AXIS));
labelsAndTextFieldsName.add(labelName);
labelsAndTextFieldsName.add(txtName);
JPanel labelsAndTextFieldsSurname = new JPanel();
labelsAndTextFieldsSurname.setLayout(new BoxLayout(labelsAndTextFieldsSurname,BoxLayout.X_AXIS));
labelsAndTextFieldsSurname.add(labelSurname);
labelsAndTextFieldsSurname.add(txtSurname);
JPanel labelsAndTextFieldsAge = new JPanel();
labelsAndTextFieldsAge.setLayout(new BoxLayout(labelsAndTextFieldsAge,BoxLayout.X_AXIS));
labelsAndTextFieldsAge.add(labelAge);
labelsAndTextFieldsAge.add(txtAge);
JPanel textFields = new JPanel();
textFields.setLayout(new BoxLayout(textFields,BoxLayout.Y_AXIS));
textFields.add(labelsAndTextFieldsName);
textFields.add(labelsAndTextFieldsSurname);
textFields.add(labelsAndTextFieldsAge);
JPanel buttons = new JPanel();
buttons.setLayout(new BoxLayout(buttons,BoxLayout.X_AXIS));
buttons.add(buttonAdd);
buttons.add(buttonRmv);
JPanel buttonsAndTextFields = new JPanel();
buttonsAndTextFields.setLayout(new BoxLayout(buttonsAndTextFields,BoxLayout.Y_AXIS));
buttonsAndTextFields.add(textFields);
buttonsAndTextFields.add(buttons);
add(jScrollPane, BorderLayout.CENTER);
add(buttonsAndTextFields, BorderLayout.LINE_END);
add(jLabel, BorderLayout.SOUTH);
}
private static void initGui() {
JFrame frame = new JFrame("Baza pracowników");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JComponent newContentPane = new Frame();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
initGui();
}
});
}
}
AddListener:
package package_;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by nmrowka on 23.07.17.
*/
public class AddListener implements ActionListener{
private String name;
private String surname;
private int age;
@Override
public void actionPerformed(ActionEvent e) {
setParameters();
Person person = new Person(name,surname,age);
}
private void setParameters(){
name = txtName.getText();
surname = txtSurname.getText();
age = Integer.parseInt(txtAge.getText());
}
}
Poprzez addActionListener, który mam podpięty do buttona buttonAdd, chce sobie tworzyć nowy obiekt "Person". ActionListener mam w osobnej klasie "AddListener". Problem polega na tym, że sam listener działa (jak sobie tam wrzucę polecenie tworzenia obiektu to mam w konsoli wypisane, że obiekt powstaje), ale nie wiem jak się dobrać to pól tekstowych txtName, txtSurname i txtAge. Kiedy korzystam z metody txtName.getText() mam błąd - "Cannot resolve symbol txtName
".
Dalej obiekt ma być dodawany do listy, a jak się klinie w daną pozycję na liście, to w JLabel będzą wypisane szczegółowe dane.
Jak dobrać się do tych pól?