Comment puis-je centre un component swing jtextfield
Je vais avoir de la difficulté à centrer un JTexfield dans mon programme.Le Champ n'apparaît pas aligné avec le JButton. J'ai essayé d'utiliser le x.setHoriontalAlignment(component swing jtextfield.CENTRE); mais en vain. Des idées?
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JPanel;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
public class WidgetProject implements ActionListener
{
//class constants
private static final Color BUTTON_COLOUR1 = Color.WHITE;
private static final int BUTTON_HEIGHT = 75;
private static final int BUTTON_WIDTH = 400;
private static final int TEXTFIELD_HEIGHT = 400;
private static final int TEXTFIELD_WIDTH = 50;
private static final String SECONDS_PER_MINUTE = "Seconds to Minutes or Minutes to Seconds";
private static final String BUTTON2_MODIFIED_LABEL = "yes";
private static final String POUNDS_PER_KILOGRAM = "Pounds to Kilograms or Kilograms to Pounds";
private static final String CHANGE_MY_LABEL = "1";
private static final int HEIGHT = 400;
private static final int WIDTH = 400;
//instance fields
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JFrame frame;
private JTextField textInput;
private JPanel panel;
/**
* A free-standing frame with two buttons.
*
* @param title the title of this frame
*/
public WidgetProject(String title)
{
//Establish the frame.
frame = new JFrame(title);
frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(WIDTH, HEIGHT));
//Establish button dimensions.
Dimension buttonDimension = new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
//Establish Textfield dimensions.
Dimension textDimension = new Dimension(TEXTFIELD_HEIGHT, TEXTFIELD_WIDTH);
//Create and add the first button.
button1 = new JButton(SECONDS_PER_MINUTE);
button1.setActionCommand(CHANGE_MY_LABEL);
button1.addActionListener(this);
button1.setPreferredSize(buttonDimension);
button1.setMinimumSize(buttonDimension);
button1.setMaximumSize(buttonDimension);
button1.setBackground(BUTTON_COLOUR1);
frame.add(button1);
//Create and add the second button.
button2 = new JButton(POUNDS_PER_KILOGRAM);
button2.setActionCommand(CHANGE_MY_LABEL);
button2.addActionListener(this);
button2.setPreferredSize(buttonDimension);
button2.setMinimumSize(buttonDimension);
button2.setMaximumSize(buttonDimension);
button2.setBackground(BUTTON_COLOUR1);
frame.add(button2);
//Create an input text field.
textInput = new JTextField(20);
textInput.setPreferredSize(textDimension);
textInput.setMinimumSize(textDimension);
textInput.setMaximumSize(textDimension);
textInput.setHorizontalAlignment(JTextField.CENTER);
panel = new JPanel();
panel.add(textInput);
String string = textInput.getText();
//Display the frame and text field.
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.add(textInput);
} //fin du constructeur ButtonDuo
utiliser un BorderLayout dans votre panneau et ajouter le component swing jtextfield pour le centre du panneau.
Vous êtes en train d'ajouter le composant textInput après vous rendre l'image visible. Passer les deux énoncés.
déjà dans le milieu
Vous êtes en train d'ajouter le composant textInput après vous rendre l'image visible. Passer les deux énoncés.
déjà dans le milieu
OriginalL'auteur NABIL SHAHIN | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
Première :
x.setHorizontalAlignment(JTextField.CENTER);
va définir le texte dans le centre de pas de la component swing jtextfieldSi vous voulez faire de la component swing jtextfield sur le centre, il suffit de créer le
panel = new JPanel();
et ajouter vos boutons Comme ceci :panel.add(button1);
panel.add(button2);
panel.add(textInput, BorderLayout.CENTER);
---> ici, je mis latextInput
dans le centre de la compositealors : ajouter le "Composite" à la Jframe :
frame.add(panel);
Essayez ceci :
OriginalL'auteur Alya'a Gamal
J'ai vérifié votre code .déjà dans le milieu..
OriginalL'auteur Biswajit
Suffit d'utiliser la
setBounds
attribut.Le premier x déplace le
TextField
vers la gauche ou la droite. Le deuxième qui se déplace vers le haut ou vers le bas. La troisième est la largeur et la dernière est la longueur.OriginalL'auteur user3145958