无法设置Java小部件的位置

时间:2019-03-28 12:24:35

标签: java swing

问题是我无法将按钮放置在想要的位置。所以我写了这段代码来再次设置位置:

button.setLocation(new Point(100, 60));

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

public class gui {

    public static void main(String [] args){
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.setBackground(Color.ORANGE);
        frame.add(panel);

        JButton button = new JButton("Button");
        button.setPreferredSize(new Dimension(200,25));
        button.setLocation(new Point(100, 60));
        panel.add(button);

        frame.setSize(new Dimension(500,400));
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("GUI App");
        frame.setResizable(false);
        frame.setVisible(true);


    }
}

2 个答案:

答案 0 :(得分:0)

您必须使用setBounds()方法!此方法需要4个参数:x和y坐标以及按钮应具有的宽度和高度。另外,您必须将Layout设置为null。因此,请尝试以下操作: button.setBounds(100, 60, 100, 50) //just an example frame.setLayout(null)

答案 1 :(得分:0)

将以下内容添加到您的组件中:

  //JPanel layout
    panel.setLayout(null);
  // postioning
    button.setLocation(100,60);

panel.setLayout(null)一样,将内容面板设置为使用绝对布局。始终需要使用setBounds方法来显式设置组件的边界。

比使用绝对布局,最好选择here最合适的布局。
例如:panel.setLayout(new FlowLayout());