Pagina 1 di 1

[Risolto][JAVA]Swing: Incolonnare i componenti

Inviato: giovedì 2 marzo 2017, 12:40
da DoctorStrange
Buongiorno a tutti, stò realizzando una piccola applicazione con Swing, e vorrei provare ad ottenere una cosa che non riesco in alcuna maniera a capire.

In pratica, questo è il codice:

Codice: Seleziona tutto

package rgbPackage;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class RenderizzaGrafica extends JFrame {

	private static final long serialVersionUID = 1L;
	
	private static final JPanel pannelloSuperiore = new JPanel();
	private static final JPanel pannelloSinistra = new JPanel();
	private static final JPanel pannelloCentrale = new JPanel();
	private static final JButton impostaBAUD = new JButton("Imposta Baud Rate");
	private static final JButton apriPorta = new JButton("Apri la porta USART");
	private static final JTextField StringaUsart = new JTextField("Stringa ricevuta",50);
	private static final JCheckBox baud1200 = new JCheckBox("Baud: 1200");	
	private static final JCheckBox baud2400 = new JCheckBox("Baud: 2400");	
	private static final JCheckBox baud4800 = new JCheckBox("Baud: 4800");	
	private static final JCheckBox baud9600 = new JCheckBox("Baud: 9600");	
	private static final JCheckBox baud19200 = new JCheckBox("Baud: 19200");	
	private static final JCheckBox baud57600 = new JCheckBox("Baud: 57600");	
	private static final JCheckBox baud115200 = new JCheckBox("Baud: 115200");	
	
	
	public static void InizializzaFinestra(){
	
		JFrame MioFrame = new JFrame("Comunicazione Seriale");
		MioFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		MioFrame.setSize(800, 500);
		MioFrame.setResizable(false);
		MioFrame.setVisible(true);
		Container MioContainer = MioFrame.getContentPane();
		MioContainer.setLayout(new BorderLayout());
		pannelloSuperiore.add(apriPorta);
		MioContainer.add(pannelloSuperiore,BorderLayout.NORTH);		
		pannelloSinistra.add(baud1200);
		pannelloSinistra.add(baud2400);
		pannelloSinistra.add(baud4800);
		pannelloSinistra.add(baud9600);
		pannelloSinistra.add(baud19200);
		pannelloSinistra.add(baud57600);
		pannelloSinistra.add(baud115200);		
		pannelloSinistra.add(impostaBAUD);
		MioContainer.add(pannelloSinistra,BorderLayout.WEST);
		pannelloCentrale.add(StringaUsart);
		MioContainer.add(pannelloCentrale,BorderLayout.CENTER);

	}

}
Uso come griglia la "BorderLayout" e, nel suo pannello di sinistra, vorrei ottenere in colonna uno sotto l'altro tutti i controlli di tipo CheckBox, ma l'unico layout che ottengo è di averli tutti in fila uno dopo l'altro.

Come si fà ad impostare che tutti i controlli Check vengano impilati e non accodati?

Esiste qualche impostazione di Swing stesso, per modificare il layout?

Grazie mille.

Re: [JAVA]Swing: Incolonnare i componenti e non accodarli. C

Inviato: giovedì 2 marzo 2017, 12:45
da Zoff

Codice: Seleziona tutto

pannelloSinistra.setLayout( new GridLayout(0,1) )

Re: [JAVA]Swing: Incolonnare i componenti e non accodarli. C

Inviato: giovedì 2 marzo 2017, 13:19
da DoctorStrange
Grazie mille !! Funziona perfettamente !! Era esattamente ciò che cercavo.