在JAVA中盯着GUI编程

时间:2018-01-11 13:40:37

标签: java

当我在Eclipse中编译下面的代码时,我希望在窗口的左上角出现一个带有按钮的窗口。相反,按钮具有与窗口相同的大小并完全填充窗口,但我想要限制第11行中按钮的大小为“button.setBounds(20,20,200,50);”。谁能告诉我我做错了什么或忘记了什么?

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

public class BeobachterGUI {
   public BeobachterGUI() {
       JFrame frame = new JFrame("A frame");
       frame.setSize(new Dimension(600, 600));


       JButton button = new JButton("Click me");
       button.setBounds(20, 20, 200, 50);

       frame.getContentPane().add(button);

       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setResizable(false);
       frame.setVisible(true);
   }


   public static void main(String[] args) {
       SwingUtilities.invokeLater(new Runnable() {

       public void run() {   
       new BeobachterGUI();
       }
   });
   }
}

1 个答案:

答案 0 :(得分:0)

JFrame会自动为自己设置默认BorderLayout,这就是让您的按钮填满整个屏幕的原因。如果您想直接控制按钮的大小和位置,则必须摆脱该布局管理器。使用以下代码行:

frame.getContentPane().setLayout(null);

一句忠诚的话:没有布局经理的工作对于娱乐和实验来说是可以的,但是你不应该养成习惯。如果您学习使用布局管理器进行设计,那么您将获得更好的GUI(并且GUI的用户可以获得更好的体验)。

要查看我的意思的一个示例,只需观察调整窗口大小时会发生什么:如果您使窗口太小,按钮可能会被切断或完全隐藏。布局管理器会尝试重新定位和/或调整按钮的大小,使其保持可见状态。