Probleme beim Aktualisieren

Oetzicool

Erfahrenes Mitglied
Hey Leute ich habe ein kleines Problem beim Aktualisieren ich habe 2 views für ein model erstellt wenn ich nun im einen view aus einer liste eine zahl auswähle und dann den button drücke, soll in einem array an der position eine eins geschrieben werden das klappt auch aber jetzt kommts zu meinem zweiten view dort werden alle werte ausgelesen und die Buttons die eine 1 haben als nicht anklickbar angezeigt aber des klappt net so wie ich will hier mal die beiden codes:

Mainview.java
Code:
package game;

import javax.swing.*;
import java.awt.event.*;
import java.util.Observer;
import java.util.Observable;
import javax.swing.JComboBox;
import java.util.*;

public class GameViewMain extends JFrame implements Observer {

    private JButton bt_case = new JButton("Koffer auswählen");
    private GameModel m_GameModel;
   // private GameOverview v_GameOverview;
    private JMenuItem mi_newgame;
    private JMenuItem mi_quit;
    private int casenumber;
    Random rand = new Random();



    public GameViewMain(GameModel model)
    {
        // Model zuweisen und zum Beobachter machen
        m_GameModel = model;
        m_GameModel.addObserver(this);
        //v_GameOverview = view;
        
        // ComboBox füllen
        

        String[] testliste = new String[10];
        for(int i = 0; i < 10; i++)
        {
            testliste[i] = Integer.toString(i+1);
        }
        JComboBox testchoice = new JComboBox(testliste);

        // Panel erstellen
        JPanel content = new JPanel();

        content.add(testchoice);
        content.add(bt_case);

        // Listeners hinzufügen
        bt_case.addActionListener(new SaveCaseListener());


        // Fensteroptionen
        this.setContentPane(content);
        this.setSize(400,200);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    // Listener zum Abfragen der ComboBox
    class CaseListener implements ActionListener {
        public void actionPerformed(ActionEvent e)
        {
            JComboBox combo = (JComboBox)e.getSource();
            casenumber = (int)combo.getSelectedIndex();

        }
    }
    
    


    class SaveCaseListener implements ActionListener {
        public void actionPerformed(ActionEvent e)
        {
            m_GameModel.setCase(casenumber);
            bt_case.setEnabled(false);
            v_GameOverview.setVisible(true);
            
        }

    }
    // Aufruf bei Veränderung am MainView
    public void update(Observable o, Object arg)
    {
     
    }

}

und hier die gameoverview.java
Code:
package game;


import javax.swing.*;
import java.util.Observer;
import java.util.Observable;

public class GameOverview  extends JFrame implements Observer {

    GameModel m_GameModel;
    JButton btn_cases[] = new JButton[26];
    JPanel p_cases = new JPanel();
    int[] ar_chosenCases = new int[26];

    GameOverview(GameModel m)
    {
        m_GameModel = m;
        m_GameModel.addObserver(this);
        ar_chosenCases = m_GameModel.notChosenCases();

        for(int i = 0; i < ar_chosenCases.length; i++)
        {
            if(ar_chosenCases[i] == 1)
            {
            btn_cases[i] = new JButton();
            btn_cases[i].setText(Integer.toString(i+1));
            btn_cases[i].setEnabled(false);
            } else {
            btn_cases[i] = new JButton();
            btn_cases[i].setText(Integer.toString(i+1));
            btn_cases[i].setEnabled(true);
            }
            p_cases.add(btn_cases[i]);
        }

        
        this.setContentPane(p_cases);
        this.setSize(400,200);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    

    public void update(Observable o, Object arg)
    {
        ar_chosenCases = m_GameModel.notChosenCases();

        for(int i = 0; i < ar_chosenCases.length; i++)
        {
            if(ar_chosenCases[i] == 1)
            {
            btn_cases[i] = new JButton();
            btn_cases[i].setText(Integer.toString(i+1));
            btn_cases[i].setEnabled(false);
            } else {
            btn_cases[i] = new JButton();
            btn_cases[i].setText(Integer.toString(i+1));
            btn_cases[i].setEnabled(true);
            }
            p_cases.add(btn_cases[i]);
        }
        repaint();
       
    }

}

Ich hoffe ihr könnt mir da weiterhelfen!
Danke schonmal!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück