Originariamente inviato da anx721
Devi studiarti i layout manager; puoi partire da qui:
http://java.sun.com/docs/books/tutor...out/index.html
seguiti i vari link per iniziare a capirli
farti degli esempi ora è inutile percke l'argometno è molto esteso e anche non semplice, ogni layout si distingue per come dispone i componenti e per come tratta le dimensioni dei componenti inseriti; magari intanto puoi farci capire come vuoi che i tuoi componenti siano inseiti nella finestra e possiamo suggerirti come comporre iltutto; in genere l'effetto voluto si ottiene componendo piu pannelli uno dentro l'altro con diversi layout; ti consiglio di non impostare a null il layout per poter usare le coordinate nella disposizione deicomponenti: anche se all'inizio sono un po difficili coi layout riesci a fare tutto cio che ti serve in maniera piu elegante e meglio organizzata.
Ho dato uno sguardo alla guida che mi hai dato ma sto impazzendo un pò, vorrei utilizzare uno SpringLayout per creare qualcosa del tipo:
c.add(intarea);
c.add(primoTag) - c.add(primoText);
c.add(secondoTag) - c.add(secondoText);
c.add(sommaTag) - c.add(sommaText);
c.add(run);
Dove il primo tag è una scritta di intestazione, dove le variabili che finiscono con Tag sono oggetti JLabel mentre quelli che finiscono con Text sono dei JTextField.
Il codice che uso è il seguente:
Da notare che ho già settato il tipo di layout come SpringLayout nella costante "LAYOUT_STYLE". Il fatto è che non ho capito bene come funziona il posizionamento tramite west ecc ecc.. se potessi farmi qualche esempio.codice://Includo le librerie per l'interfaccie grafiche import javax.swing.*; import java.awt.*; import java.awt.event.*; //Creo la classe con gli oggetti frafici public class grafica implements ActionListener { //Variabili per settare il Layout private static final int WINDOW_WIDTH = 500; //pixel private static final int WINDOW_HEIGHT = 500; //pixel private static final int FIELD_WIDTH = 20; // caratteri private static final int AREA_WIDTH = 40; // caratteri //private static final FlowLayout LAYOUT_STYLE = // new FlowLayout(); private static final SpringLayout LAYOUT_STYLE = new SpringLayout(); private static final String INTESTAZIONE = "Inserisci i due numeri da sommare:"; //finestra per l'interfaccia grafica private JFrame window = new JFrame("grafica.class"); //Stampo l'intestazione private JTextArea intarea = new JTextArea(INTESTAZIONE, 2, AREA_WIDTH); //Campo per l'inserimento del primo num private JLabel primoTag = new JLabel(" Primo numero"); private JTextField primoText = new JTextField(FIELD_WIDTH); //Campo per l'inserimento del secondo numero private JLabel secondoTag = new JLabel(" Secondo numero"); private JTextField secondoText = new JTextField(FIELD_WIDTH); //Campo per il risultato private JLabel sommaTag = new JLabel(" Risultato"); private JTextField sommaText = new JTextField(FIELD_WIDTH); //pulsante di esecuzione private JButton run = new JButton("Somma"); public grafica(){ //configura GUI window.setSize(WINDOW_WIDTH, WINDOW_HEIGHT); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); intarea.setEditable(false); intarea.setLineWrap(true); intarea.setWrapStyleWord(true); intarea.setBackground(window.getBackground()); sommaText.setEditable(false); sommaText.setBackground(Color.WHITE); //Registra il rilevatore di eventi run.addActionListener(this); //aggiunge i componenti alla finestra Container c = window.getContentPane(); c.setLayout(LAYOUT_STYLE); c.add(intarea); c.add(primoTag); c.add(primoText); c.add(secondoTag); c.add(secondoText); c.add(sommaTag); c.add(sommaText); c.add(run); //visualizza GUI window.show(); } //Gestore degli eventi public void actionPerformed(ActionEvent e){ //recupera le risposte dell'utente String response1 = primoText.getText(); double p = Double.parseDouble(response1); String response2 = secondoText.getText(); double s = Double.parseDouble(response2); //visualizza somma double Doutput = p + s; String output = String.valueOf(Doutput); sommaText.setText(output); } //main, punto d'ingresso dell'applicazione public static void main(String[] args) { grafica gui = new grafica(); } }


Rispondi quotando