Precedente :: Successivo |
Autore |
Messaggio |
lucajeck Mortale devoto

Registrato: 17/10/07 15:21 Messaggi: 13
|
Inviato: 10 Feb 2010 22:04 Oggetto: [JAVA] Problema con i pannelli |
|
|
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  |
|
Top |
|
 |
mda Dio maturo


Registrato: 01/11/06 10:39 Messaggi: 6648 Residenza: Figonia
|
Inviato: 14 Feb 2010 20:21 Oggetto: Re: [JAVA] Problema con i pannelli |
|
|
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 |
|
 |
lucajeck Mortale devoto

Registrato: 17/10/07 15:21 Messaggi: 13
|
Inviato: 15 Feb 2010 19:24 Oggetto: chiarimento |
|
|
scusami, non vorrei abusare dellatua gentilezza, manon ho capito bene ciò che intendi, nonsono ancora molto pratico :)Potresti rispiegarlo?
grazie mille  |
|
Top |
|
 |
mda Dio maturo


Registrato: 01/11/06 10:39 Messaggi: 6648 Residenza: Figonia
|
Inviato: 16 Feb 2010 00:47 Oggetto: Re: chiarimento |
|
|
lucajeck ha scritto: | scusami, non vorrei abusare dellatua gentilezza, manon ho capito bene ciò che intendi, nonsono ancora molto pratico :)Potresti rispiegarlo?
grazie mille  |
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 |
|
 |
Elenuccia08 Mortale devoto

Registrato: 26/02/10 22:12 Messaggi: 14
|
Inviato: 26 Feb 2010 22:24 Oggetto: Pannelli ribelli |
|
|
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 |
|
 |
|
|
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
|
|