user4103894
user4103894

Reputation:

Java buttons not showing up on JFrame

I am fairly new to java, and I am starting a sort of glossary program. At the start, I am trying to use a JFrame with buttons on.

But only 1 button shows up when I run it. Also, I don't think I am positioning the buttons right.

         package glossary;

import java.awt.BorderLayout;
import javax.swing.JFrame;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;

public class Glossary {


    public static void main(String[] args) {

         JFrame frame = new JFrame("Glossary");
         frame.setVisible(true);
         frame.setSize(400,200);
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



         JPanel panel1 = new JPanel();
         frame.add(panel1);
         JButton LookUpWord = new JButton("Look up word");
         panel1.add(LookUpWord, BorderLayout.NORTH);

         JPanel panel2 = new JPanel();
         frame.add(panel2);
         JButton SubmitNewWord = new JButton("Submit word");
         panel2.add(SubmitNewWord, BorderLayout.SOUTH);

          }

}

Please tell me what I am doing horribly wrong!

Upvotes: 2

Views: 11765

Answers (2)

martinez314
martinez314

Reputation: 12332

I think you are just getting mixed up about where to add your components. You probably aren't intending to add the buttons to NORTH and SOUTH, but rather adding the panels to the frame at NORTH and SOUTH. Also, wait until you've added all your components before calling frame.setVisible(true).

Try this:

public static void main(String[] args) {
    JFrame frame = new JFrame("Glossary");
    frame.setSize(400, 200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JButton LookUpWord = new JButton("Look up word");  // create the button
    JPanel panel1 = new JPanel();  // create the panel
    panel1.add(LookUpWord);  // add the button to the panel
    frame.add(panel1, BorderLayout.NORTH);  // add the panel to the frame

    JButton SubmitNewWord = new JButton("Submit word");
    JPanel panel2 = new JPanel();
    panel2.add(SubmitNewWord);
    frame.add(panel2, BorderLayout.SOUTH);

    frame.setVisible(true);
}

Upvotes: 6

Jake Huang
Jake Huang

Reputation: 140

Add frame.setVisible(true);

Hoping this tutorial help you

How to Make Frames

Upvotes: 0

Related Questions