Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[JAVA] Problema con i pannelli
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
lucajeck
Mortale devoto
Mortale devoto


Registrato: 17/10/07 15:21
Messaggi: 13

MessaggioInviato: 10 Feb 2010 22:04    Oggetto: [JAVA] Problema con i pannelli Rispondi citando

Ciao a tutti
E' da poco che smanetto con la grafica in java e ho qualche problema. Sto implementando un editor di testo e mi sono bloccato nella fase di creazione del menù per la codifica dei caratteri. Ne vorrei fare uno simile al notepad. Ho usato un jframe e come configurazione ho usato un BorderLayout. Il pannello di North serve per le etichette, quello East Center e West sono i pannelli nei quali ho aggiunto i Jlist per modificare dimensione, stile e tipo di carattere, in quello di South vorrei mettere un'etichetta per dare un'idea di come veràà modificato il carattere, come il menù per la modifica dei caratteri di notepad. Il problema è che quest'ultimo pannello viene nasscosto quasi interamente dagli altri. Ho provato a settare le dimensioni di tuti ma nulla, Ecco come ho implementato il tutto


Codice:
public class MenuCarattere extends JFrame {
   
   JList listaFont, listaDimensioni, listaEffetti;
   Panel pannelloScroll1, pannelloScroll2, pannelloScroll3, pannelloEtichette, pannelloEsempio;
   JLabel tipoCarattere, stile, punti, esempio;
   JScrollPane scroll1, scroll2, scroll3;
   String font[]= {"ciao", "coap", "ddddd", "dsssaee", "deeeeerf", "sddd", "ewwwq"};
   String dimensioni[]= {"1", "2", "3", "10", "11", "12", "13", "14", "15", "16", "17", "18"};
   String effetti[]={"Normale", "Grassetto", "Corsivo", "GrassettoCorsivo"};

   

   public MenuCarattere() {
      
      super("Menù Carattere");
      
      setBounds(100, 0, 400, 350);
      setLayout(new BorderLayout());
      
      
      getContentPane().add("North",createPannelloEtichette());
      getContentPane().add("West",createPannelloScroll1());
      getContentPane().add("Center",createPannelloScroll2());
      getContentPane().add("East",createPannelloScroll3());
      getContentPane().add("South",createPannelloEsempio());
      
      
      
   }
   
   
   protected Panel createPannelloScroll1(){
      
      listaFont = new JList();
      scroll1 = new JScrollPane(listaFont);
      pannelloScroll1 = new Panel ();
      
      
      listaFont.setListData(font);
      scroll1.setPreferredSize(new Dimension(80, 100));
      
      
      pannelloScroll1.add(scroll1);
      
      
      return pannelloScroll1;
      
   }
   
   
   
   protected Panel createPannelloScroll2(){
      
      
      listaDimensioni = new JList();
      scroll2 = new JScrollPane(listaDimensioni);
      pannelloScroll2 = new Panel ();
      
      
      listaDimensioni.setListData(dimensioni);
      scroll2.setPreferredSize(new Dimension(50, 100));
      
      pannelloScroll2.add(scroll2);
      
      
      return pannelloScroll2;
   }
   
   
   protected Panel createPannelloScroll3(){
      
      listaEffetti = new JList();
      scroll3 = new JScrollPane(listaEffetti);
      pannelloScroll3 = new Panel ();
      
      listaEffetti.setListData(effetti);
      scroll3.setPreferredSize(new Dimension(90, 100));
      
      
      pannelloScroll3.add(scroll3);
      
      
      return pannelloScroll3;
      
      
   }
   
   
   protected Panel createPannelloEtichette(){
      
      pannelloEtichette = new Panel ();
      
      tipoCarattere = new JLabel(" Tipo di carattere");
      stile = new JLabel("Punti");
      punti = new JLabel("Stile                       ");
      esempio = new JLabel("Vuoto");
      
      
      pannelloEtichette.setLayout(new BorderLayout(90, 10));
      
      
      pannelloEtichette.add("West",tipoCarattere);
      pannelloEtichette.add("Center",stile);
      pannelloEtichette.add("East",punti);
      
      
      return pannelloEtichette;
      
   }
   
   
   
   protected Panel createPannelloEsempio(){
      
      pannelloEsempio = new Panel ();
      pannelloEsempio.setSize(50, 50);
      pannelloEsempio.setLayout(new BorderLayout());
      
      
      JLabel etichetta = new JLabel("Esempio");
      
      pannelloEsempio.add(etichetta);
      
      
      
      return pannelloEsempio;
   }
   
   
}




GRAZIE A TUTTI Very Happy
Top
Profilo Invia messaggio privato
mda
Dio maturo
Dio maturo


Registrato: 01/11/06 10:39
Messaggi: 6648
Residenza: Figonia

MessaggioInviato: 14 Feb 2010 20:21    Oggetto: Re: [JAVA] Problema con i pannelli Rispondi citando

lucajeck ha scritto:
(....)in quello di South vorrei mettere un'etichetta per dare un'idea di come veràà modificato il carattere, come il menù per la modifica dei caratteri di notepad. Il problema è che quest'ultimo pannello viene nascosto quasi interamente dagli altri. (...)


Il problema è un classico in quanto la zona sud viene utilizzata solamente come "striscia" per i messaggi.

Dividi in due il pannello (Center) centrale o meglio strutturalo del tutto. In quanto, salvo usarlo per dispositivi display (java funziona su tutto e non solo PC), nessuno usa gli altri ovvero North (solo etichetta, titolo), West e East (solo spazio di formattazione), South (zona messaggi).

Ciao
Top
Profilo Invia messaggio privato HomePage AIM
lucajeck
Mortale devoto
Mortale devoto


Registrato: 17/10/07 15:21
Messaggi: 13

MessaggioInviato: 15 Feb 2010 19:24    Oggetto: chiarimento Rispondi citando

scusami, non vorrei abusare dellatua gentilezza, manon ho capito bene ciò che intendi, nonsono ancora molto pratico :)Potresti rispiegarlo?
grazie mille Smile
Top
Profilo Invia messaggio privato
mda
Dio maturo
Dio maturo


Registrato: 01/11/06 10:39
Messaggi: 6648
Residenza: Figonia

MessaggioInviato: 16 Feb 2010 00:47    Oggetto: Re: chiarimento Rispondi citando

lucajeck ha scritto:
scusami, non vorrei abusare dellatua gentilezza, manon ho capito bene ciò che intendi, nonsono ancora molto pratico :)Potresti rispiegarlo?
grazie mille Smile


Dunque:

Dato che sicuramente fai una visualizzazione su di un monitor, NON devi usare le zone periferiche ma usa solo la zona Center!

Se invece usi un display (esempio: tipo quello dell'auto) allora si usano tutti.

Esistono anche diversi sistemi di visualizzazione come Swing, awt, swt, ecc.. Guardati il sistema di visualizzazione "Eclipse" progettato dall'IBM.

Citazione:
Eclipse è un progetto open source legato alla creazione e allo sviluppo di un IDE (sistema di sviluppo integrato) ideato da un consorzio di grandi società, chiamato Eclipse Foundation, e creata da una comunità strutturata sullo stile dell'open source.
Il programma è scritto Java, ma utilizza delle librerie grafiche diverse da quelle della Sun Microsystems in modo da rendere più veloce la visualizzazione (ecco perchè è così lento all'avvio...).


Ciao
Top
Profilo Invia messaggio privato HomePage AIM
Elenuccia08
Mortale devoto
Mortale devoto


Registrato: 26/02/10 22:12
Messaggi: 14

MessaggioInviato: 26 Feb 2010 22:24    Oggetto: Pannelli ribelli Rispondi

Ciao a tutti. Per un esame sto implementando un piccolo editor di testo, sono incasinata con il menù per la modifica dei caratteri. Ho provato di tutto,ma i 3 pannelli che ho messo non stanno in ordine. Ho usato un piccolo jframe e dentro ci ho messo 4 pannelli, uno attaccato al jframe che contiene gli altri 3. Di questi 3 uno contiene le etichette , uno 3 jlist per la scelta del tipo, dimensione ed enventuali effetti, e l'ultimo un'etichetta che mostra come si è modificato il carattere,come quello del notepad per intenderci. Il problema è che l'ultimo pannello se ne sta rannicchiato infondo al jframe e non si ridimensiona. Ditemi un po, quante mostruosità ho scritto....[Triste]


Codice:
public Menu{
     
      super("Menù Carattere");
     
      setBounds(100, 0, 400, 300);
   
      content = new JPanel(new BorderLayout());
      nord = new JPanel();
      centro = new JPanel();
      sud = new JPanel();
     
      nord.add(creaPannelloEtichette());
      centro.add(creaPannelloScroll());
      sud.add(creaPannelloEsempio());
     
                content.add("North",nord);
      content.add("Center",centro);
      content.add("South",sud);
     
      getContentPane().add(content);
     
     
   }
   
   
   protected JPanel creaPannelloScroll(){
     
     Dimensioni = new JList();
      Font = new JList();
      Effetti = new JList();
     
      scroll1 = new JScrollPane(Font);
      scroll2 = new JScrollPane(Dimensioni);
      scroll3 = new JScrollPane(Effetti);
     
      pannelloScroll = new JPanel (new GridLayout(1,3,20,20));
     
      scroll1.setPreferredSize(new Dimension(70, 100));
      scroll2.setPreferredSize(new Dimension(50, 100));
      scroll3.setPreferredSize(new Dimension(90, 100));
     
      Font.setListData(font);
      Dimensioni.setListData(dimensioni);
      Effetti.setListData(effetti);
     
      pannelloScroll.add(scroll1);
      pannelloScroll.add(scroll2);
      pannelloScroll.add(scroll3);
   
     
      return pannelloScroll;
     
   }
   
   protected JPanel creaPannelloEtichette(){
     
      pannelloEtichette = new JPanel (new GridLayout(1,3, 20, 100));
     
     etichettaCarattere = new JLabel(" Tipo di carattere");
     
      stile = new JLabel("Punti");
      punti = new JLabel("Stile ");
      esempio = new JLabel("Vuoto");
     
      pannelloEtichette.add(tipoCarattere);
      pannelloEtichette.add(stile);
      pannelloEtichette.add(punti);
     

     
      return pannelloEtichette;
     
   }
   
   protected JPanel creaPannelloEsempio(){
     
           pannelloEsempio = new JPanel ();
      pannelloEsempio.setSize(100, 100);
      pannelloEsempio.setBackground(Color.BLUE);
      JLabel etichetta = new JLabel("Esempio");
     
      etichetta.setSize(100,100);
     
      pannelloEsempio.add(etichetta);
     
      return pannelloEsempio;
   }
   
}

GRAZIE A TUTTI!
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi