How do I center a JTextfield

后端 未结 3 1272
伪装坚强ぢ
伪装坚强ぢ 2021-01-13 13:13

I\'m having trouble centering a JTexfield in my program.The Textfield does not appear aligned with the JButton. I\'ve tried using the x.setHoriontalAlignment(JTextfield.CENT

相关标签:
3条回答
  • 2021-01-13 13:15

    First :x.setHorizontalAlignment(JTextField.CENTER); will set the text in the center not the JTextField

    If you want to make the JTextField on the center, just create the panel = new JPanel(); and add your buttons on it Like this :panel.add(button1);

    panel.add(button2);

    panel.add(textInput, BorderLayout.CENTER); ---> here i set the textInput in the center of the jpanel

    then : add the 'Jpanel' to the Jframe :frame.add(panel);

    Try this :

    package javaapplication1;
    
    import java.awt.BorderLayout;
    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;
    
    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);
            panel = new JPanel();
            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);
            panel.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);
            panel.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.add(textInput, BorderLayout.CENTER);
            String string = textInput.getText();
    
            frame.add(panel);
            // Display the frame and text field.
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        } // end of constructor ButtonDuo
    
        @Override
        public void actionPerformed(ActionEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }
    
    0 讨论(0)
  • 2021-01-13 13:17

    Just use the setBounds attribute.

    Jtextfield.setBounds(x,x,x,x);
    

    The first x moves the TextField to the left or right. The second one moves it up or down. The third is the width and the last is the length.

    0 讨论(0)
  • 2021-01-13 13:34
     import javax.swing.*;
    import java.awt.*;
    
    public class JTableComponent{
      public static void main(String[] args) 
    {
      new JTableComponent();
      }
    
      public JTableComponent(){
      JFrame // 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(700, 700));
    
      // Establish button dimensions.
      Dimension buttonDimension = new Dimension(120, 120);
    
      // Establish Textfield dimensions.
      Dimension textDimension = new Dimension(110, 110);
    
    
      // Create an input text field.
      JTextField textInput = new JTextField(20);
      textInput.setPreferredSize(textDimension);
      textInput.setMinimumSize(textDimension);
      textInput.setMaximumSize(textDimension);
      textInput.setHorizontalAlignment(JTextField.CENTER);
      JPanel  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);
      }
    }
    

    I have checked your code .its already in middle..

    0 讨论(0)
提交回复
热议问题