PDA

Visualizza la versione completa : [Java] ordine pulsanti


ZIko
26-10-2003, 14:31
Ciao a tutti in una guida della sun ho trovato questo codice:


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class BoxWindow extends JFrame {
boolean inAnApplet = true;

public BoxWindow() {
Container contentPane = getContentPane();
contentPane.setLayout(new BoxLayout(contentPane,
BoxLayout.Y_AXIS));

addAButton("Button 1", contentPane);
addAButton("2", contentPane);
addAButton("Button 3", contentPane);
addAButton("Long-Named Button 4", contentPane);
//########################COMMENTO######
addAButton.add("Button 5", contentPane);
//########################COMMENTO######

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
if (inAnApplet) {
dispose();
} else {
System.exit(0);
}
}
});
}

private void addAButton(String text, Container container) {
JButton button = new JButton(text);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
container.add(button);
}

public static void main(String args[]) {
BoxWindow window = new BoxWindow();
window.inAnApplet = false;

window.setTitle("BoxLayout");
window.pack();
window.setVisible(true);
}
}

Questo programmino centra dei pulsanti su una GUI. Quello che non riesco a capire è per quale motivo non li centra se cambio il codice tra i commenti con questo???


JButton my=new JButton("Button 5");
contentPane.add(my);

Grazie a tutti!!!

LeleFT
26-10-2003, 17:13
Beh... il codice riportato, per aggiungere un pulsante alla GUI, fa uso di un metodo chiamato addAButton, il quale si occupa di:

- Creare il pulsante con il testo passato come parametro

- Settare l'allineamento del pulsante (CENTRARLO)

- Aggiungere il pulsante alla GUI

Fa quindi 3 operazioni distinte.

Se tu modifichi il codice nel commento (che tra l'altro non funzionerà mai) con il tuo codice, ovviamente non lo centrerà perchè non setti l'allineamento: dovresti aggiungere questo codice:


my.setAlignment(Component.CENTER_ALIGNMENT);


in modo da dire dove posizionare l'oggetto.


Ciao.

ZIko
26-10-2003, 21:43
hai ragione "non funzionerà mai perché ho sbaglia sarebbe scritto:


addAButton("Button 5", contentPane);

Grazie dell'aiuto

ZIko
26-10-2003, 21:51
però anche con il codice che hai messo tu non funziona!!!
Mi da errore!!!
come faccio???

LeleFT
27-10-2003, 15:17
Ovvio che non funziona... avevo la dislessia sui polpastrelli quando ho scritto quella cosa... il codice corretto prevede una X in più: :stordita:


my.setAlignmentX(Component.CENTER_ALIGNMENT);

Ora dovrebbe funzionare... non l'ho provato, ma lo proverò.


Ciao.

ZIko
27-10-2003, 16:41
funzia alla perfezione grazie

Loading