简体   繁体   中英

Java Jframe centers my buttons ):<

Here is my code:

public class Main {
public static void main(String[] args){
JFrame frame = new JFrame("Vex Development Studio 2.0");
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 frame.setLocation(10,10);
//make variables
 File newproject;

 Container content = frame.getContentPane();
 GridBagConstraints gbc = new GridBagConstraints ();
Dimension buttonsize = new Dimension(75,25);  
Button about;
about = new Button("About");
about.setPreferredSize(buttonsize);
 //add content
 content.setLayout(new GridBagLayout());
    content.setBackground(Color.white);
    gbc.gridx = 0;
    gbc.gridy = 0;
    content.add(about,gbc);
    //main stuff
    //about button
    about.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent ae){
          JOptionPane.showMessageDialog(null, "Example", "About", 1);
          }
          });
    //some extra crap
    frame.setSize(700, 500);
    frame.show();
    //end
}
}

I have all the code right, and I have all the required imports, the problem is: I need the buttons to be at the top left corner of the window. Thanks in advance! (:

Because in your gridbaglayout, there's only one square.

And I suggest to use a JButton instead of Button.

mixing AWT and Swing is a bad idea.

To anchor the button to top left of the content pane, you can use

gbc.anchor = GridBagConstraints.NORTHWEST;

or equivalently in new notation, I believe you can use

gbc.anchor = GridBagConstraints.FIRST_LINE_START;

You have to allow the buttons to move on their own:

setLayout(null);

Put this before you create the button and it will allow you to move them freely.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM