Si infatti di layout in generale so veramente poco, purtroppo sto studiando da solo il linguaggio java (che è il primo che ho conosciuto) da circa 8 mesi senza seguire un percorso preciso.
Questo è il codice in cui creo il JFrame e aggiungo gli altri elementi
codice:
public class FinestraPrincipale {
public static JFrame finestra = new JFrame ();
// Impostazione finestra
private void setFinestraPrincipale(){
Toolkit TK = Toolkit.getDefaultToolkit();
finestra.setBounds(0,0,TK.getScreenSize().width,TK.getScreenSize().height);
finestra.setVisible(true);
finestra.setTitle("Piano Cartesiano");
finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finestra.setResizable(false);
}
// Bottoni per aggiunta elementi
JButton BottonePunto = new JButton();
JButton BottoneRetta = new JButton();
JButton BottoneTriangolo = new JButton();
JButton BottoneQuadrilatero = new JButton();
private void setBottoniAggiuntaElementi(){
JPanel panelBottonePunto = new JPanel();
JPanel panelBottoneRetta = new JPanel();
JPanel panelBottoneTriangolo = new JPanel();
JPanel panelBottoneQuadrilatero = new JPanel();
panelBottonePunto.setLayout(null);
panelBottoneRetta.setLayout(null);
panelBottoneTriangolo.setLayout(null);
panelBottoneQuadrilatero.setLayout(null);
BottonePunto.setSize(25, 25);
BottoneRetta.setSize(25, 25);
BottoneTriangolo.setSize(25, 25);
BottoneQuadrilatero.setSize(25, 25);
panelBottonePunto.setBounds(730, 155, 25, 25);
panelBottoneRetta.setBounds(730, 195, 25, 25);
panelBottoneTriangolo.setBounds(730, 235, 25, 25);
panelBottoneQuadrilatero.setBounds(730, 275, 25, 25);
panelBottonePunto.add(BottonePunto);
panelBottoneRetta.add(BottoneRetta);
panelBottoneTriangolo.add(BottoneTriangolo);
panelBottoneQuadrilatero.add(BottoneQuadrilatero);
Image immaginePunto;
immaginePunto = Toolkit.getDefaultToolkit().getImage("C:/Users/Emanuele/Pictures/Punto.jpg");
BottonePunto.setIcon(new ImageIcon(immaginePunto.getScaledInstance(75, 75, Image.SCALE_FAST)));
Image immagineRetta;
immagineRetta = Toolkit.getDefaultToolkit().getImage("C:/Users/Emanuele/Pictures/Retta.jpg");
BottoneRetta.setIcon(new ImageIcon(immagineRetta.getScaledInstance(75, 75, Image.SCALE_FAST)));
Image immagineTriangolo;
immagineTriangolo = Toolkit.getDefaultToolkit().getImage("C:/Users/Emanuele/Pictures/Triangolo.jpg");
BottoneTriangolo.setIcon(new ImageIcon(immagineTriangolo.getScaledInstance(65, 65, Image.SCALE_FAST)));
Image immagineQuadrilatero;
immagineQuadrilatero = Toolkit.getDefaultToolkit().getImage("C:/Users/Emanuele/Pictures/Quadrilatero.jpg");
BottoneQuadrilatero.setIcon(new ImageIcon(immagineQuadrilatero.getScaledInstance(65, 65, Image.SCALE_FAST)));
finestra.add(panelBottonePunto);
finestra.add(panelBottoneRetta);
finestra.add(panelBottoneTriangolo);
finestra.add(panelBottoneQuadrilatero);
}
//Aggiunta JSlider selezionatore unità di misura
JSliderUnitaMisura oggSelezionaUnita = new JSliderUnitaMisura();
private void setJSliderSelezioneUnitàDiMisura(){
JPanel panelUnitàMisura = new JPanel();
panelUnitàMisura.setBounds(725, 60, 200, 60);
panelUnitàMisura.add(JSliderUnitaMisura.unitaMisura);
finestra.add(panelUnitàMisura);
}
// Aggiunta menù alla finestra principale
JMenuBar menubar = new JMenuBar ();
JMenu menuFile = new JMenu ("File");
JMenu menuModifica = new JMenu ("Modifica");
JMenu menuVisualizza = new JMenu ("Visualizza");
JMenu menuImpostazioni = new JMenu ("Impostazioni");
JMenu menuHelp = new JMenu ("?");
private void addMenùToFrame(){
finestra.setJMenuBar(menubar);
menubar.add(menuFile);
menubar.add(menuModifica);
menubar.add(menuVisualizza);
menubar.add(menuImpostazioni);
menubar.add(menuHelp);
}
//Sottomenù di menuFile
JMenuItem nuovo = new JMenuItem ("Nuovo foglio");
public JMenuItem esci = new JMenuItem ("Esci");
private void addSottomenùDiMenuFile(){
menuFile.add(nuovo);
menuFile.add(esci);
esci.addActionListener(new BottoneEsci());
}
//Sottomenù di menuImpostazioni
public JMenuItem selezionaLookAndFeel = new JMenuItem ("Seleziona stile");
private JMenu aggiungiElemento = new JMenu ("Aggiungi elemento");
JMenuItem menuPunto = new JMenuItem("Aggiungi punto");
JMenuItem menuRetta = new JMenuItem("Aggiungi retta");
JMenuItem menuTriangolo = new JMenuItem("Aggiungi triangolo");
JMenuItem menuQuadrilatero = new JMenuItem("Aggiungi quadrilatero");
private void addSottomenùDiMenuImpostazioni(){
menuImpostazioni.add(aggiungiElemento);
menuImpostazioni.addSeparator();
menuImpostazioni.add(selezionaLookAndFeel);
aggiungiElemento.add(menuPunto);
aggiungiElemento.add(menuRetta);
aggiungiElemento.add(menuTriangolo);
aggiungiElemento.add(menuQuadrilatero);
selezionaLookAndFeel.addActionListener (new SelezionaLookAndFeel());
}
//Sottomenù di menuHelp
JMenuItem guida = new JMenuItem ("Guida");
JMenuItem informazioni = new JMenuItem ("Informazioni su: Piano Cartesiano");
private void addSottomenùDiMenuHelp(){
menuHelp.add(guida);
menuHelp.add(informazioni);
}
private void addSottomenùToJMenu(){
addSottomenùDiMenuFile();
addSottomenùDiMenuImpostazioni();
addSottomenùDiMenuHelp();
}
public FinestraPrincipale() {
setFinestraPrincipale();
setBottoniAggiuntaElementi();
setJSliderSelezioneUnitàDiMisura();
addMenùToFrame();
addSottomenùToJMenu();
JPanel panelDisegno = new CreaGrafico();
finestra.add(panelDisegno);
}
}
Nel metodo main (In una classe diversa) vado a cambiare il Look & Feel e poi a richiamare il costruttore della classe qui sopra (new FinestraPrincipale())