Newsgroup: it.comp.java
Titolo: Dimensioni fisse a pulsanti jtext e  menù che si nascondono

Salve a tutti, sto provando a creare delle semplici interfacce grafiche 
in java.
Ho creato un piccolo pulsante con un menù, la finestra principale 
contiene due JPanel (2 righe, 1 colonna; sono uno sopra l'altro) ognuno 
formato da una riga e due colonne (uno contiene una jtext field ed un 
pulsante; l'altro contiene una label ed una jtextfield).
Ora se io allargo la finestra del programma principale questi pulsanti 
mi prendono tutto lo spazio e diventano abnormi. Come posso fare in modo 
che le dimensioni di pulsanti, jtextfield e jlabel rimangano costanti 
anche allargando la finestra?
Un'altra domanda, nella mia applicazione c'è anche un menù solo che 
quando vado su file, o su Help il menù che si dovrebbe aprire me lo 
ritrovo dietro le jtextfield o dietro i pulsanti, quindi non riesco a 
vederlo, si vede solo qualche pixel iniziale (i pixel non coperti), perchè?
Come risolvo?
Grazie ancora, ciao ciao.

 Grazie ancora, ciao ciao.
Prego, ciao
Co

Corrado Alesso ha scritto:

Allora il layout che sto usando per ora è un GridLayout. In ogni caso 
questo è il mio codice (generato in automarico da eclipse visual editor):
//Inizilizza il JContentPane principale:
	private JPanel getJContentPane1() {
		if (jContentPane1 == null) {
			GridLayout gridLayout2 = new GridLayout();
			gridLayout2.setRows(2);
			jContentPane1 = new JPanel();
			jContentPane1.setLayout(gridLayout2);
			jContentPane1.add(getInserimento(), null);
			jContentPane1.add(getRisultato(), null);
		}
		return jContentPane1;
	}
//Inizializzo il JContentPane inserito nella prima riga del JContentPane 
//principale (quello nella seconda riga del JContentPane non lo 
//trascrivo è analogo)
	private Panel getInserimento() {
		if (inserimento == null) {
			GridLayout gridLayout = new GridLayout();
			gridLayout.setRows(1);
			inserimento = new Panel();
			inserimento.setLayout(gridLayout);
			inserimento.add(getSorgenteDati(), null);
			inserimento.add(getPrelevaDati(), null);
		}
		return inserimento;
	}
//JTextField contenuta nel JContentPane della prima riga (questo mi 
//copre i menù che apro, accanto ha un pulsante che fa altrettanto, non 
//copio il codice perchè non c'è nulla più o meno è analogo a questo)
	private JTextField getSorgenteDati() {
		if (sorgenteDati == null) {
			sorgenteDati = new JTextField();
			sorgenteDati.addKeyListener(new java.awt.event.KeyAdapter() {
				public void keyTyped(java.awt.event.KeyEvent e) {
					if(e.getKeyChar()=='\n')
					resultT.setText(sorgenteDati.getText());
				}
			});
		}
		return sorgenteDati;
	}
//Finestra principale del programma
	private JFrame getJFrame() {
		if (jFrame == null) {
			jFrame = new JFrame();
			jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			jFrame.setJMenuBar(getJJMenuBar());
			jFrame.setSize(375, 118);
			jFrame.setContentPane(getJContentPane1());
			jFrame.setTitle("P 1.0");
		}
		return jFrame;
	}
//Inizializzazione barra Menù
	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
			jJMenuBar.add(getFileMenu());
			jJMenuBar.add(getEditMenu());
			jJMenuBar.add(getHelpMenu());
			//jJMenuBar.setComponentZOrder(jContentPane1, 10);
		}
		return jJMenuBar;
	}
//Inizializzazione Menù File (quelle degli altri menù non le copio, 
//tanto sono analoghe)
	private JMenu getFileMenu() {
		if (fileMenu == null) {
			fileMenu = new JMenu();
			fileMenu.setText("File");
			fileMenu.add(getSaveMenuItem());
			fileMenu.add(getExitMenuItem());
		}
		return fileMenu;
	}
Grazie, ciao ciao.

Sembra a posto, l'unica cosa losca e'
jJMenuBar.setComponentZOrder(jContentPane1, 10);
in getJJMenuBar. Prova a guardare le api e a giocare con questo metodo, 
ZOrder mi fa proprio pensare che sia il responsabile del menu che 
comprare "sotto" gli altri componenti.
Piotre Ugrumov ha scritto:


 comprare "sotto" gli altri componenti.
Quell'istruzione avevo provato a metterla io per vedere se mi rialazava 
il menù solo che lancio il programma e mi da una NULL pointer exception, 
infatti l'ho commentata. Mi da problemi nel JContentPane1.
Tutto il codice dei menù mi è stato generato automaticamente da Visual 
Editor per eclipse.
Grazie, ciao ciao.

 Grazie, ciao ciao.
Giusto, il motivo per cui ti da nullpointer e' che nel momento in cui 
chiami la ZOrder, jContentPane1 non e' ancora stato inizializzato. Devi 
invertire
jFrame.setJMenuBar(getJJMenuBar()); 
bjFrame.setContentPane(getJContentPane1());
in getJFrame(). Cioe' mettere prima setContentPane. Cmq questo e' il 
meno, il perche' si verifichi la sovrapposizione mi sfugge, non sembra 
esserci qualcosa di palesemente errato. Lascia perdere i visual editor e 
fa a mano, fai prima e meglio! :)