I have completed most of the application I created however I cannot get the GUI components to show up correctly. I want to have the text in JLabel on the top centered in the form. The 2nd component is a JTextField which will only need to be big enough to hold numbers between 1 and 100. It currently takes up the whole width of the form. I have tried a number of things to resize it without success. The 3rd component is a button panel which actually appearing correctly.

Code:
import javax.swing.*;
import java.awt.*;

public class GuessNumber {
        
    public static void main(String[] args) {
        
        Guess guess = new Guess();
                
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(guess.getContent());
        f.setSize(500, 150);
        f.setVisible(true);
        f.setLocation(275, 275);
      }
}
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
import java.awt.*;

public class Guess implements ActionListener{
    
    JButton okButton;
    JButton playAgainButton;
    JButton exitButton;
    JTextField answerTextField;
    JLabel msgLabel;
    int randomNum;
    int currentMessageState = 1;
    int guessCount = 1;
        
    public JPanel getContent() {  

        RandomNumber random = new RandomNumber();
        randomNum = random.getNumber();
     
        System.out.println(randomNum);
        
        String message = "Please enter what you think the random number is below.";
        
        // creates JLabel that asks user to guess what the random
        // number is and enter it below
        msgLabel = new JLabel(message, JLabel.CENTER);
        msgLabel.setSize(400, 150);
        msgLabel.setFont(new Font("Times New Roman", Font.BOLD, 14));

        answerTextField = new JTextField();
        Dimension d = answerTextField.getPreferredSize();
        d.width = 75;
        answerTextField.setPreferredSize(d);
        answerTextField.setFont(new Font("Times New Roman", Font.PLAIN, 14));
        answerTextField.requestFocusInWindow();
        
        okButton = new JButton("Ok");
        okButton.setSize(30, 30);
        okButton.setFont(new Font("Times New Roman", Font.PLAIN, 14));
        okButton.addActionListener(this);  
        
        playAgainButton = new JButton("Play Again");
        playAgainButton.setFont(new Font("Times New Roman", Font.PLAIN, 14));
        playAgainButton.addActionListener(this);
       
        exitButton = new JButton("Exit");
        exitButton.setFont(new Font("Times New Roman", Font.PLAIN, 14));
        exitButton.addActionListener(this);
        
        JPanel buttonPanel = new JPanel();
        buttonPanel.add(okButton);
        buttonPanel.add(playAgainButton);
        buttonPanel.add(exitButton);
        
        JPanel panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
        panel.add(msgLabel);
        panel.add(answerTextField);
        panel.add(buttonPanel);
        return panel;
    }
    
    public void actionPerformed(ActionEvent e){
        if(e.getSource() == okButton){

            String userGuess = answerTextField.getText();
            int guess = Integer.parseInt(userGuess);
            answerTextField.setEditable(false);
            
            if(guess == randomNum){

                JOptionPane.showMessageDialog(null, "You guessed correctly.\n" +
                        "Tries needed to guess correctly: " + guessCount + "\n");                
                guessCount++;
                answerTextField.setEditable(false);
                }
            
             if(guess < randomNum){
                
                JOptionPane.showMessageDialog(null, "The guess was too low, guess higher.");    
                guessCount++;
                answerTextField.setEditable(true);
                answerTextField.setText("");
                answerTextField.requestFocusInWindow();
               
            }
            
            if(guess > randomNum){
                JOptionPane.showMessageDialog(null, "The guess was too high, guess lower.");                
                guessCount++;
                answerTextField.setEditable(true);
                answerTextField.setText("");
                answerTextField.requestFocusInWindow();
                }            
        }
        
        if(e.getSource() == playAgainButton){
            
            answerTextField.setEditable(true);
            answerTextField.setText("");
            answerTextField.requestFocusInWindow();
            guessCount = 1;
            Guess newgame = new Guess();
            newgame.getContent();
        }
        
        if(e.getSource() == exitButton){
            System.exit(0);
        }
    }
    
}
Code:
import java.util.Random;

public class RandomNumber {
    
    int randomNum;
  
    public RandomNumber() {
        
          }

    public int getNumber() {
       
        setNumber();

        return randomNum;
    }
    
    private void setNumber(){
         int max = 100;
        Random random = new Random();
        randomNum = random.nextInt(max +1);
    }
    
}
Thanks