Przekazywanie wydarzenia z jednej klasy do drugiej

0

Zrobiłem sobie programik, w których chciałbym przesłać wydarzenie (wciśnięcie przycisku) z jednej klasy do drugiej. Zrobiłem trochę to po januszowemu, bo nie umiałem przekazać zdarzenia między klasami, ale wartości która była inicjowana przy zdarzeniu już tak. Zatem w jednej klasie robie sobię gui:

class FrameTest extends JFrame
{
	 
	 
	 
	public FrameTest()
	{
		int result;
		CardLayout card = new CardLayout();
		JPanel cards = new JPanel(card);
		JPanel card1,card2,card3;
		
	    card1 = new JPanel(new BorderLayout());
	    card2 = new JPanel();
	    card3 = new JPanel(new BorderLayout());
	    
		
		JPanel northPanel = new JPanel();
		northPanel.add(new TextWindow());
		card1.add(northPanel,BorderLayout.NORTH);
		
		card2.add(new WindowTest(card2));
		card3.add(new NextWindow());
		JPanel southPanel = new JPanel();
		JButton startButton = new JButton("Rozpocznij test");
		southPanel.add(startButton);
		startButton.setActionCommand("next");
		startButton.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent event)
			{
				String actioncommand = event.getActionCommand();
				if(actioncommand.equalsIgnoreCase("next"))
				{
					card.show(cards,"Jaja");
					System.out.println("Wciśnięty przycisk");
					
				}
			}
		});
		card1.add(southPanel,BorderLayout.CENTER);
		cards.add(card1, "Dupa");
		cards.add(card2, "Jaja");
		cards.add(card3,"Cycki");
		add(cards);
		WindowTest test = new WindowTest(); //instancja drugiej klasy, z której wydobywam wartość pola static
		result=test.get(); //wartość przekazana z drugiej klasy w której nastąpiło zdarzenie
		//System.out.println("Ten kod cały czas się wywołuje.Result="+result);
		if(result==5)
		{
			System.out.println("Warunek spełniony.Wartość result=" +result); //kod programu jaki ma się stać kiedy nastąpi zdarzenie w drugiej klasie
			card.show(cards,"Cycki");
		}
		pack();
		setLocationByPlatform(true);
		
	}
	
	
}

Druga klasa zawiera natomiast funkcje set i get wartości static. W drugiej klasie też uruchamiam pewne gui w którym mam przycisk i do którego dodaje action listenera w ten sam spobób. I tak w kodzie funckji ActionPerformed mam:

 private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
    	set(5);
    	new FrameTest();
    }                          

generalnie System.out.println mi działa w warunku if w konstruktorze klasy FrameTest, jednak zmiana karty(CardLayout) już mi nie działa. Ktoś wie czemu to nie działa ? Jak najlepiej przekazać zdarzenie z innej klasy prosto do konstruktora pierwszej klasy ?

Dzięki za wszelkie porady i wskazówki

0

wzorzec Obserwator?

1 użytkowników online, w tym zalogowanych: 0, gości: 1