Hej,
mam taki problem, zagwozdkę. Otóż nie wiem jak powinna wyglądać poprawnie zaprojektowana aplikacja. Robię prosty program w Javie (Swing). Na początku jest okno w ktorym podajemy ścięzkę gdzie bedziemy chcieli coś zainstalować. Następnię klikamy instaluj i otwiera się nowe okno, na którym pokazuje proces pobierania, instalacji itd. Wówczas są wywoływane różne funkcje: download(), unzip(), install(), run(). Czyli mamy 2 klasy. np. Menu i Instalacja
Moje pytanie brzmi. Gdzie powinny znajdować się te funkcje i ich wywołania. Opcje są 2. Albo robię funkjce statyczne i są one wywoływane w konstruktorze klasy Instalacja(). Albo są to zwykłe funkjce tej klasy i po utworzenu obiektu Instalajca w klasie Menu tam wywołuje te funkcje na obiekcie.
Proszę o pomoc, bo nie chcę się źle uczyć. Wiem, że tak i tak to zadziała ale może dlatego, że aplikacja jest prosta.
Naszkicowałem to na kodzie.
public class Menu {
private JFrame frame;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Menu window = new Menu();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Menu() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//KLIKAM PRZYCISK I OKNO ZAMYKA, OTWIERA SIE NOWE OKNO INSTALACJI
frame.dispose();
Installer installer = new Installer();
installer.setVisible(true);
OPCJA 1:
frame.DOWNLOAD()
frame.INSTALUJ()
}
});
btnStart.setBounds(85, 158, 97, 25);
frame.getContentPane().add(btnStart);
}
}
public class Installer extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Installer frame = new Installer();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Installer() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
OPCJA 2
DOWNLOAD()
INSTALUJ()
ROZPAKUJ()
}
FUNKCJA DOWNLOAD(){}
FUNKCJA INSTALUJ(){}
FUNKCJA ROZPAKUJ(){}
}