Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Java.awt

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    74

    Java.awt

    Ciao a tutti .
    Domani ho una verifica,e sto smattando da ieri perchè non mi visualizza niente all'interno di un panel, sebbene lo aggiunga direttamente al panel . Più precisamente vi porto il caso di una TextField :
    codice:
    	
    		Panel panel=new Panel();
    		panel.setBounds(150,200,199,199);
    		panel.setBackground(Color.RED);
    		panel.setForeground(Color.BLACK);
    		panel.setVisible(true);
    panel.setLayout(null);
    		frame.add(panel);
    		
    		TextField txt=new TextField();
    		txt.setBounds(160,230,100,100);
    		txt.setBackground(Color.white);
    		panel.add(txt);

    Ho aggiunto il pannello al frame (e questo me lo visualizza) e di conseguenza ho aggiunto la TextArea(txt) al pannello,ma nulla .

    Grazie per eventuali chiarimenti, non so se può servire ma nel caso vi allego tutto (l'incompleto) codice :

    codice:
    import java.awt.*;
    
    
    
    
    public class Esercizio {
    
    
    	public static void main(String[] args) {
    		
    		Frame frame=new Frame("Esercizio Grafica"); 
    		frame.setBounds(300,20,700,700); //x,y largezza e altezza
    		frame.setBackground(Color.GREEN);
    		frame.setVisible(true);
    		frame.setLayout(null);
    		
    		
    		
    		Font font=new Font("Arial", Font.BOLD,28); //creo un font
    		
    		//creo la label titolo
    		
    		Label label=new Label("Questo è un Titolo"); //label 
    		label.setFont(font); //applico il font
    		label.setAlignment(Label.CENTER); //Metto il testo centrato
    		label.setBounds(175, 50, 350, 50); //coordinate x,y e altezza/larghezza
    		label.setBackground(Color.WHITE); //colore di sfondo
    		label.setForeground(Color.ORANGE); //colore testo
    		label.setVisible(true); //VISIBILE: SI 
    		frame.add(label); //aggiungo la label al frame
    		
    	
    		
    		//creo un Panel, quadrato sx
    		
    		Panel panel=new Panel();
    		panel.setBounds(150,200,199,199);
    		panel.setBackground(Color.RED);
    		panel.setForeground(Color.BLACK);
    		panel.setVisible(true);
    	    panel.setLayout(null);
    		frame.add(panel);
    		
    		TextField txt=new TextField();
    		txt.setBounds(160,230,100,100);
    		txt.setBackground(Color.white);
    		panel.add(txt);
    		
    		//secondo pannello a dx
    		
    		Panel panel2=new Panel();
    		panel2.setBounds(351,200,199,199);
    		panel2.setBackground(Color.RED);
    		panel2.setForeground(Color.BLACK);
    		panel2.setVisible(true);
    		frame.add(panel2);
    		panel2.setLayout(null);
    		
    		//terzo pannello basso a sx
    		
    		Panel panel3=new Panel();
    		panel3.setBounds(150,401,199,199);
    		panel3.setBackground(Color.RED);
    		panel3.setForeground(Color.BLACK);
    		panel3.setVisible(true);
    		frame.add(panel3);
    		panel3.setLayout(null);
    		//quarto pannello basso a dx
    		
    		Panel panel4=new Panel();
    		panel4.setBounds(351,401,199,199);
    		panel4.setBackground(Color.RED);
    		panel4.setForeground(Color.BLACK);
    		panel4.setVisible(true);
    		panel4.setLayout(null);
    frame.add(panel4);
    
    
    }
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da AleJAVA Visualizza il messaggio
    codice:
    		Panel panel=new Panel();
    		panel.setBounds(150,200,199,199);
    				
    		TextField txt=new TextField();
    		txt.setBounds(160,230,100,100);
    Le coordinate del TextField sono relative al suo contenitore (il Panel), dove 0,0 è l'angolo in alto-sinistra del pannello.
    In sostanza, il TextField è fuori da quell'area di 199x199.
    Ultima modifica di andbin; 11-04-2016 a 21:13
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    74
    Vero !!

    Grazie mille veramente, sei un grande, mi ero perso in un bicchier d'acqua veramente !!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    74
    Altro dubbio, non apro un'altra discussione continuo di qui.

    codice:
    Button button1=new Button("Bottone n. 1");
    		Button button2=new Button("Bottone n. 2");
    		Button button3=new Button("Bottone n. 3");
    		Button button4=new Button("Bottone n. 4");
    		
    		Panel panel3=new Panel();
    		panel3.setBounds(150,401,199,199);
    		panel3.setBackground(Color.white);
    		//panel3.setVisible(true);
    		frame.add(panel3);
    		panel3.setLayout(new GridLayout(1,3));
    		
    		panel3.add(button1);
    		panel3.add(button2);
    		panel3.add(button3);
    		panel3.add(button4);
    Allora, dichiaro 4 buttoni, creo un pannel3 che sistemo con il setBounds,gli setto il Layout GridLayout di 1x3, dopodiche inserisco dentro al panel3 i 4 bottoni, ma non mi visualizza nulla .
    Mi vengono visualizzati se uso il setBounds per ogni bottone, ma con GridLayout non dovrei facilitarmi il lavoro senza setBounds andando a creare una specie di "tabellina" ?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da AleJAVA Visualizza il messaggio
    Allora, dichiaro 4 buttoni, creo un pannel3 che sistemo con il setBounds,gli setto il Layout GridLayout di 1x3, dopodiche inserisco dentro al panel3 i 4 bottoni, ma non mi visualizza nulla .
    Mi vengono visualizzati se uso il setBounds per ogni bottone, ma con GridLayout non dovrei facilitarmi il lavoro senza setBounds andando a creare una specie di "tabellina" ?
    L'uso di GridLayout è corretto (anche se specifichi 3 colonne ma poi inserisci 4 componenti, ma non è quello il punto).
    frame è un java.awt.Frame? Se sì, gli hai cambiato (o tolto) il layout manager? O c'è quello di default (BorderLayout)?
    Se il frame ha un BorderLayout, allora la riga

    panel3.setBounds(150,401,199,199);

    NON serve, perché facendo frame.add(panel3); metti panel3 nella parte CENTER, che occupa tutto lo spazio disponibile, quindi la dimensione di panel3 dipende solo dal frame, non dal panel3.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    74
    Scusa il ritardo, ma grazie per la disponibilità, molto gentile

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.