Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312

    java swing e borderlayout

    Salve a tutti,
    devo realizzare una piccola gui per un programma e sto utilizzando come layout manager il borderlayout.
    il codice è questo:
    • public class GUI extends JFrame {
      private BorderLayout layout;
      private JButton left;
      private JButton center;
      private JButton search;
      private JTextField area;
      public GUI(){

      super("test");
      layout = new BorderLayout(10,10);
      setLayout(layout);
      left = new JButton("prova");
      left.setBounds(10, 10, 90, 90);
      center = new JButton("Image");
      area = new JTextField();
      search = new JButton("serch");
      add(left,BorderLayout.EAST);
      add(center,BorderLayout.WEST);
      add(search,BorderLayout.SOUTH);
      setVisible(true);
      }

      public static void main(String[] s){
      GUI a = new GUI();
      a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      a.setExtendedState(JFrame.MAXIMIZED_BOTH);



      }
      }

    Ho 2 problemi:
    1. vorrei che i pulsanti hai lati non siano lunghi come tutto il frame ma siano piccoli e posizionati al centro.
    2.Nella regione south dovrei inserire una text area con un pulsante vicino ma mi fa inserire un solo elemento.

    Come posso fare?

    Grazie

  2. #2
    Ciao, prova questo codice non ho messo il package perché non so quale usi..

    codice:
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class GUI extends JFrame {
       
          private BorderLayout layout;
          private JButton left;
          private JButton right;
          private JButton search;
          private JTextField area;
          
          public GUI(){
       
          super("test");
          layout = new BorderLayout(10,10);
          setLayout(layout);
    
          left = new JButton("prova");
          left.setPreferredSize(new Dimension(90, 20));
    
          JPanel leftp = new JPanel();
          leftp.add(left);
          
          right = new JButton("Image");
          right.setPreferredSize(new Dimension(90, 20));
          
          JPanel rightp = new JPanel();
          rightp.add(right);
          
          area = new JTextField();
          area.setPreferredSize(new Dimension(250, 20));
    
          search = new JButton("serch");
          search.setPreferredSize(new Dimension(90, 20));
       
          JPanel searchp = new JPanel(new FlowLayout(FlowLayout.LEFT,10,10));
          searchp.add(area);
          searchp.add(search);
       
          JPanel centerp = new JPanel();
          //centerp.add( qualchecomponente );
          
          add(leftp,BorderLayout.WEST);
          add(rightp,BorderLayout.EAST);
          add(centerp,BorderLayout.CENTER);
          add(searchp,BorderLayout.SOUTH);
          setVisible(true);
          }
       
          public static void main(String[] s){
          GUI a = new GUI();
          a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          a.setExtendedState(JFrame.MAXIMIZED_BOTH);
    
          }
       }
    Ondare, il mio blog!

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: java swing e borderlayout

    Originariamente inviato da lio.b
    1. vorrei che i pulsanti hai lati non siano lunghi come tutto il frame ma siano piccoli e posizionati al centro.
    Se sai cosa fa BorderLayout, sai che ha 5 aree .... quelle sono! NORTH e SOUTH ad esempio hanno la altezza "preferita" del componente mentre la larghezza è tutta quella del contenitore (e non dipende dal componente). Ed è così .... non ci puoi fare nulla solo con BorderLayout.

    Quello che puoi fare è mettere in NORTH es. un JPanel che ha un altro layout manager tale per cui ad esempio un pulsante possa stare al centro e dimensionato come preferisce.

    Originariamente inviato da lio.b
    2.Nella regione south dovrei inserire una text area con un pulsante vicino ma mi fa inserire un solo elemento.
    Stessa cosa che ho detto prima. L'abilità sta nel saper "inscatolare" componenti dentro contenitori dentro altri contenitori ecc... Ognuno eventualmente con un proprio e diverso layout manager.

    Esempio: vuoi mettere nella parte SOUTH di un BorderLayout 2 pulsanti in orizzontale che si spartiscano al 50% la larghezza??? Metti in SOUTH un JPanel con un GridLayout di 1 riga e 2 colonne con dentro i pulsanti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Grazie a tutti per la velocità di risposta.
    Il mio layout prevede che al centro vengano visualizzate delle immagini. Ai lati di questa immagine ci siano due pulsanti.
    In basso una text area con un pulsante per fare la ricerca, quindi molto semplice.
    La mia domanda è: ha senso usare borderlayout per poi inserirci dentro dei jpanel oppure no? Ovvio che funziona lo stesso ma per un buon progetto che strada prendereste?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Ciao, prova questo codice non ho messo il package perché non so quale usi..
    Il codice funziona bene, grazie.
    L'unica cosa è che vorrei che i pulsanti a destra e sinistra siano al centro del jpanel che li contiene. Come si può fare?

  6. #6
    Originariamente inviato da lio.b
    Il codice funziona bene, grazie.
    L'unica cosa è che vorrei che i pulsanti a destra e sinistra siano al centro del jpanel che li contiene. Come si può fare?
    Cambiando il tipo di layout del jpanel di riferimento, per avere una panoramica delle possibilità ti consiglio veramente (anche se un po' palloso) di far riferimento a della documentazione.. ad esempio questa

    http://java.sun.com/docs/books/tutor...out/index.html

    dove puoi capire bene le differenze, trovi anche dei tutorial sulla rete o su html.it

    Ciao
    Ondare, il mio blog!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    @lio.b: nel regolamento (che va letto, prima di postare, come dice il titolo stesso) c'è scritto quanto segue (al punto 6):

    Formattazione del codice sorgente.
    Quando incollate una porzione di codice all'interno di un messaggio, utilizzate l'apposito tag
    [CODE]
    codice
    [/CODE]
    che può essere inserito automaticamente premendo il pulsante CODE: questo renderà il codice leggibile e facilmente comprensibile a tutti, agevolando gli utenti che desiderano aiutarvi.
    Per le prossime volte, usa i tag CODE: fai meno fatica e ottieni dei risultati.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.