Dobre praktyki pisania w javie

0

Cześć,

Od kilku tygodni uczę się Java w związku z tym mam dwa pytania.

  1. Chciałbym stworzyć klasę główną i w niej wywoływać inne klasy, w których będą informację o zakładkach programu np. dodanie zamówienia, o programie itd. Jak to najlepiej zrobić ?
  2. Czytałem na internecie że najlepszym sposobem na pisanie programów w Javie jest nie pisanie kod w klasie main tylko wywoływanie metod do konkretnych klas. Możccie przybliżyć mi temat, jakiś przykład.

Mój obecny kod

package aplikacja.glowna;

import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Main extends JFrame {

	private static final long serialVersionUID = -4575271483481196192L;

	Container pane;
	CardLayout layout;

	public Main() throws FileNotFoundException, IOException {

		layout = new CardLayout();
		setLayout(layout);

		pane = this.getContentPane();

		/*Page: Strona główna */
		JPanel newPanel = new JPanel();
		pane.add("New", newPanel);		
		JButton przycisk = new JButton("Przycisk");
		newPanel.add(przycisk);		
		
		/* Page: O programie */
		OProgramie metodaOProgramie = new OProgramie();
		JPanel panelOProgramieloadPanel = new JPanel();
		pane.add("OProgramie", panelOProgramieloadPanel);

		panelOProgramieloadPanel.add(metodaOProgramie.getAutorLabel());	

		/* Page: Save */
		JPanel savePanel = new JPanel();
		pane.add("Save", savePanel);

		/* Menu */
		JMenuBar menuBar = new JMenuBar();
		JMenu menuPlik = new JMenu();
		JMenu menuPomoc = new JMenu();
		JMenuItem menuPomocOProgramie = new JMenuItem();
		JMenuItem menuPlikNew = new JMenuItem();
		JMenuItem menuPlikLoad = new JMenuItem();
		JMenuItem menuPlikExit = new JMenuItem();

		menuPlik.setText("Plik");
		menuPlikNew.setText("Opcja 1");
		menuPlikLoad.setText("Opcja 2");
		menuPlikExit.setText("Zakończ");

		menuPomoc.setText("Pomoc");
		menuPomocOProgramie.setText("O programie");

		menuPlik.add(menuPlikNew);
		menuPlik.add(menuPlikLoad);
		menuPlik.add(menuPlikExit);
		menuBar.add(menuPlik);
		menuBar.add(menuPomoc);
		menuPomoc.add(menuPomocOProgramie);
		/* Menu */
		
		/* Wywolywanie akcji */
		menuPlikExit.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Main.this.windowClosed();
			}
		});

		menuPlikNew.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				layout.show(pane, "New");
			}
		});
		menuPlikLoad.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				layout.show(pane, "Load");
			}
		});
		menuPomocOProgramie.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				layout.show(pane, "OProgramie");
			}
		});		
		/* Wywolywanie akcji */
		
		setTitle("Pizzeria Żarłacz v0.1");
		setJMenuBar(menuBar);
		setSize(new Dimension(640, 480));

		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				Main.this.windowClosed();
			}
		});
	}

	protected void windowClosed() {
		System.exit(0);
	}

	public static void main(String[] arg) throws FileNotFoundException, IOException {
		Main f = new Main();
		f.setVisible(true);
	}
}
package aplikacja.glowna;

import javax.swing.JButton;
import javax.swing.JPanel;

public class StronaGlowna {

	public void StronaGlownaDisplay() {
		JPanel newPanel = new JPanel();
		JButton przycisk2 = new JButton("Przycisk");
		newPanel.add(przycisk2);
	}

}
0

W tym przypadku możesz tworzyć dany panel z danymi i go tylko wyświetlać za pomocą danej metody.

class PanelTekst extends JPanel{
             JTextField imie = new JTextField(15);
             JTextField nazwisko = new JTextField(15);
      PanelTekst(int x,int y){
             imie.setLocation(x,y);  //można coś tu ustalić odnośnie pól.
             nazwisko.setLocation(x,y+50);
      }
 
      public dodaj(){
             add(imie);
             add(nazwisko);
      }

}

A w klasie main:


PanelTekst pola= new PanelTekst(50,70);
okno.add(pola); //dodanie panelu do okna

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