Dostep do GUI Java Swing

0

Cześć,

Bardzo rzadko programuję w Javie, a pierwszy raz muszę zrobić coś z interfejsem użytkownika GUI i dlatego proszę o radę.

Mam program oparty na trzech klasach powiązanych ze sobą, algorytm korzysta z wątków i muszę do tego dorobić małe GUI. NetBeans Generuje mi klasę formularza z prywatnymi polami komonentów i kodem którego nie mogę edytować. Problem polega na tym, że chciałbym aby każda z klas mogła odwoływać się do komponentów. Najlepiej bezpośrednio jeśli to możliwe. Jak się za to zabrać? Czego użyć? Nie bardzo mogę zmieniać układ klas ponieważ klasy zawierają swoje obiekty nawzajem. Myślałem może o oddzielnych oknach? Kiepskie rozwiązanie ale moje pomysły się wyczerpały. Proszę o Pomoc

0

Może coś takiego:

package mvc.view;
 
import mvc.controller.MainFramePresenter;
 
import javax.swing.*;
import java.awt.*;
 
/**
 * Author: Daniel
 */
public class MainFrame extends JFrame {
 
    public static final int WIDTH = 500;
    public static final int HEIGHT = 300;
 
    public MainFrame() {
        setUpFrame();
        initializeComponentst();
    }
 
    private void setUpFrame() {
        setTitle("Test");
        setSize(new Dimension(WIDTH, HEIGHT));
        setLocationRelativeTo(null);
    }
 
    private void initializeComponentst() {
        MainFramePresenter presenter = new MainFramePresenter();
 
        MainPanel mainPanel = new MainPanel();
        add(mainPanel);
 
        presenter.setButton(mainPanel.getButton());
    }
}
 
// *****************************************************************************************
 
package mvc.view;
 
import javax.swing.*;
 
/**
 * Author: Daniel
 */
public class MainPanel extends JPanel {
    private JButton button;
 
    public MainPanel() {
        initliazeComponents();
    }
 
    private void initliazeComponents() {
        button = new JButton("Kliknij");
        add(button);
    }
 
    public JButton getButton() {
        return button;
    }
}
 
// *****************************************************************************************
 
package mvc.controller;
 
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
/**
 * Author: Daniel
 */
public class MainFramePresenter {
 
    class ButtonLister implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("Kliknięto");
        }
    }
 
    public void setButton(JButton button) {
        button.addActionListener(new ButtonLister());
    }
}
 
// *****************************************************************************************
 
package mvc;
 
import mvc.view.MainFrame;
 
import javax.swing.*;
import java.awt.*;
 
/**
 * Author: Daniel
 */
public class Main {
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                MainFrame mainFrame = new MainFrame();
                mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                mainFrame.setVisible(true);
            }
        });
    }
}
 

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