Si vous voulez dimensionner et positionner les sous-composants graphiques d'un composant, vous pouvez le faire grâce aux méthodes setSize (pour indiquer la largeur et la hauteur), setLocation (pour indiquer les coordonnées du coin supérieur gauche) et setBounds (pour indiquer la largeur et la hauteur puis les coordonnées du coin supérieur gauche). Ces méthodes sont issues de la classe java.awt.Component.
Néanmoins, il est presque toujours préférable d'utiliser des gestionnaires de répartition pour positionner les sous-composants.
L'image ci-dessus correspond à l'application ci-dessous. Aucun événement n'est intercepté. L'application "ne fait rien".
import java.awt.Color; import java.awt.Dimension; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingConstants; public class Libre extends JPanel { public Libre() { JButton bouton = new JButton("bouton"); JScrollPane ecriture = new JScrollPane(new JTextArea()); JLabel message = new JLabel("Bonjour", SwingConstants.CENTER); setLayout(null); setPreferredSize(new Dimension(200, 200)); bouton.setBounds(30, 10, 150, 30); message.setBackground(Color.YELLOW); message.setOpaque(true); ecriture.setSize(100, 100); ecriture.setLocation(60, 50); message.setBounds(10, 170, 100, 20); add(bouton); add(ecriture); add(message); } } class EssaiLibre { public static void main(String[] argv=) { JFrame monCadre = new JFrame(); monCadre.setContentPane(new Libre()); monCadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); monCadre.pack(); monCadre.setVisible(true); } }
© Irène Charon, Télécom ParisTech 2011