Wywoływanie komponentu z innej klasy za pomocą przycisku

0

Witam,
mam pewien problem, chciałem ulepszyć mój program by startował dopiero po naciśnięciu przycisku "Start" lecz nie działa, i nie wiem dlaczego. Bardzo proszę o pomoc, a oto kod:

import java.awt.event.*;
import javax.swing.*;

public class Frame extends JFrame{
	public Frame()
	{
		this.setSize(800,600);
		this.setTitle("Gra");
		this.setResizable(false);
		
		JButton go = new JButton("Start");
		buttonPanel = new JPanel();
		buttonPanel.add(go);
		add(buttonPanel);
		Start goAction = new Start();
		go.addActionListener(goAction);

	}
	private class Start implements ActionListener
	{
		public void actionPerformed(ActionEvent event) {
			
			Mouse mouse = new Mouse();
			add(mouse);
		}
		
	}
	private JPanel buttonPanel;
}

Z góry dziękuje :)

0

Program dokładnie tak jest napisany, jeśli osobiście jeśli szukałbym błędu to w tej części

Mouse mouse = new Mouse();
   add(mouse);

Nie wiadomo co to za obiekt i po co jest dodawany za każdym razem do form. Możliwe że nie dałeś mu żadnego zadania do wykonania(jeśli brak efektu) lub jest ono wykonywane w konstruktorze przy tworzeniu obiektu( jeśli wykonuje się za szybko).

0

Trochę nie rozumiem twojej odpowiedzi. Ogólnie chodzi o to że to

Mouse mouse = new Mouse();
   add(mouse);

ma wywołać klasę Mouse i tam dalej zostaną wywołane kolejne elementy.

1

Moze tak:

import java.awt.event.*;
import javax.swing.*;

public class Frame extends JFrame{
    public Frame()
    {
        this.setSize(800,600);
        this.setTitle("Gra");
        this.setResizable(false);
        
        setVisible(true);

        JButton go = new JButton("Start");
        buttonPanel = new JPanel();
        buttonPanel.add(go);
        add(buttonPanel);
        Start goAction = new Start();
        go.addActionListener(goAction);

    }
    private class Start implements ActionListener
    {
        public void actionPerformed(ActionEvent event) {

            Mouse mouse = new Mouse();
            remove(buttonPanel);
            add(mouse);
            revalidate();
        }

    }
    private JPanel buttonPanel;
}
0

Dzięki, działa :)

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