To nie to.
Te przyciski w panelu edycji robią takie rzeczy:
JButton PrzyciskDodajCwiczenie = new JButton("");
PrzyciskDodajCwiczenie.setIcon(new ImageIcon(GlownaRamka.class.getResource("jpg/dodaj.png")));
PrzyciskDodajCwiczenie.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if (cwiczeniaMapa.containsKey(poleNazwaCwiczenia.getText())==true)
{
System.out.println("TO JUZ JEST W LISCIE");
}
if (cwiczeniaMapa.containsKey(poleNazwaCwiczenia.getText())==false)
{
cwiczenie = new Cwiczenia(poleNazwaCwiczenia.getText(),textAreaOpisCwiczenia.getText());
cwiczeniaMapa.put(poleNazwaCwiczenia.getText(), cwiczenie);
listaWyboruCwiczenZmienna.addElement(poleNazwaCwiczenia.getText());
}
try {
FileOutputStream PolaczZapiszCwiczenia = new FileOutputStream("cwiczenia.ser");
ObjectOutputStream zapiszCwiczenia = new ObjectOutputStream(PolaczZapiszCwiczenia);
zapiszCwiczenia.writeObject(cwiczeniaMapa);
zapiszCwiczenia.writeObject(listaWyboruCwiczenZmienna);
zapiszCwiczenia.close();
} catch (Exception ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
poleNazwaCwiczenia.setText("");
textAreaOpisCwiczenia.setText("");
}
});
JButton PrzyciskUsunCwiczenie = new JButton("");
PrzyciskUsunCwiczenie.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
listaWyboruCwiczenZmienna.removeElement(poleNazwaCwiczenia.getText());
cwiczeniaMapa.remove(poleNazwaCwiczenia.getText());
poleNazwaCwiczenia.setText("");
textAreaOpisCwiczenia.setText("");
try {
FileOutputStream PolaczZapiszCwiczenia = new FileOutputStream("cwiczenia.ser");
ObjectOutputStream zapiszCwiczenia = new ObjectOutputStream(PolaczZapiszCwiczenia);
zapiszCwiczenia.writeObject(cwiczeniaMapa);
zapiszCwiczenia.writeObject(listaWyboruCwiczenZmienna);
zapiszCwiczenia.close();
} catch (Exception ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
}
});
Za kazdym razem jak cos zmienie i klikne ktorys przycisk lista sie zapisuje a odczyt tej listy jest w main.
public class GlownaRamka extends JFrame implements Serializable
{
private Uzytkownik uzytkownik;
private Cwiczenia cwiczenie;
private JPanel PanelOtwarciaProgramu;
private JPanel PanelNowegoUzytkownika;
private JPanel PanelPrzebieguCwiczen;
private JPanel PanelEdycjiCwiczen;
private JTextField poleLogin;
private JTextField poleHaslo;
private JTextField poleImie;
private JTextField poleNazwisko;
private JTextField poleWiek;
private JScrollPane pasekPionowy;
private Border obramowanie;
private JTextField poleWaga;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JTextField poleEmail;
private JTextArea PoleInformacjiOUzytkowniku;
private static Map<String,Uzytkownik> uzytkownicyMapa;
private static Map<String,Cwiczenia> cwiczeniaMapa;
private OknaDialogowe dialog;
private JLabel etykietaImieDane;
private JTextField textFieldCwiczenie1;
private JTextField textFieldLicznikPowtorzenCwiczenie1;
private JTextField textFieldCwiczenie2;
private JTextField textFieldLicznikPowtorzenCwiczenie2;
private JTextField poleNazwaCwiczenia;
private JTextField textFieldCwiczenie3;
private JTextField textFieldLicznikPowtorzenCwiczenie3;
private JTextField textFieldCwiczenie4;
private JTextField textFieldLicznikPowtorzenCwiczenie4;
private JTextField textFieldCwiczenie5;
private JTextField textFieldLicznikPowtorzenCwiczenie5;
private JTextField textFieldCwiczenie6;
private JTextField textFieldLicznikPowtorzenCwiczenie6;
private JTextField textFieldCwiczenie7;
private JTextField textFieldLicznikPowtorzenCwiczenie7;
private JTextField textFieldCwiczenie8;
private JTextField textFieldLicznikPowtorzenCwiczenie8;
private JComboBox<Object> comboBoxCwiczenie1;
private JComboBox<Object> comboBoxCwiczenie2;
private JComboBox comboBoxCwiczenie3;
private JComboBox comboBoxCwiczenie4;
private JComboBox comboBoxCwiczenie5;
private JComboBox comboBoxCwiczenie6;
private JComboBox comboBoxCwiczenie7;
private JComboBox comboBoxCwiczenie8;
private static DefaultListModel listaWyboruCwiczenZmienna;
private JList listaWyboruCwiczenGlowna;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GlownaRamka frame = new GlownaRamka();
frame.pack();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
uzytkownicyMapa = new HashMap<String,Uzytkownik>();
cwiczeniaMapa = new HashMap<String,Cwiczenia>();
listaWyboruCwiczenZmienna = new DefaultListModel();
try {
FileInputStream PolaczOdczytajUzytkownicy = new FileInputStream("uzytkowinicyStan.ser");
ObjectInputStream odczytajUzytkownicy = new ObjectInputStream(PolaczOdczytajUzytkownicy);
uzytkownicyMapa = (Map<String, Uzytkownik>) odczytajUzytkownicy.readObject();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
FileInputStream PolaczOdczytajCwiczenia = new FileInputStream("cwiczenia.ser");
ObjectInputStream odczytajCwiczenia = new ObjectInputStream(PolaczOdczytajCwiczenia);
cwiczeniaMapa = (Map<String, Cwiczenia>) odczytajCwiczenia.readObject();
listaWyboruCwiczenZmienna = (DefaultListModel) odczytajCwiczenia.readObject();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Map<String,Uzytkownik> getUzytkownicyMapa()
{
return uzytkownicyMapa;
}
public JPanel getPanelOtwarciaProgramu()
{
return this.PanelOtwarciaProgramu;
}
public JPanel getPanelPrzebieguCwiczen()
{
return this.PanelPrzebieguCwiczen;
}
/**
* Create the frame.
*/
public GlownaRamka() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
getContentPane().setLayout(new CardLayout(0, 0));
PanelOtwarciaProgramu = new JPanel();
PanelOtwarciaProgramu.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(PanelOtwarciaProgramu);
TU PONIZEJ SA TWORZONE
JComboBox comboBoxCwiczenie2 = new JComboBox();
i dodawana do nich lista
Moze w złym miejscu odczytuje ta liste. Moze powinien to jescze raz odczytac przy zmianie paneli.Juz dzisiaj mam dość tych comboboxow jutro przeanalizuje ten kod raz jeszcze. Jakby Wam się coś rzuciło w oczy to piszcie.