Java 浮动按钮是AWT吗?

Java 浮动按钮是AWT吗?,java,user-interface,button,awt,Java,User Interface,Button,Awt,所以,我一直避免在java中使用GUI,因为我个人无法忍受GUI。但是,我已经开始了一个需要使用GUI的项目,而且,毫不奇怪,我遇到了问题。。我有这段代码 public class DefaultWindow extends Window { private DefaultWindow(Frame owner) { super(owner); contained = owner; } public DefaultWindow()

所以,我一直避免在java中使用GUI,因为我个人无法忍受GUI。但是,我已经开始了一个需要使用GUI的项目,而且,毫不奇怪,我遇到了问题。。我有这段代码

public class DefaultWindow extends Window
{
    private DefaultWindow(Frame owner)
    {
        super(owner);
        contained = owner;
    }
    public DefaultWindow()
    {
        this(new Frame(""));
        contained.setBackground(Color.black);
        contained.setLocation(0, 0);
        contained.setSize(1280,720);
        Button comp = new Button("Hello");
        comp.setLocation(0, 0);
        comp.setSize(10, 10);
        add(comp);
        pack();
        contained.setVisible(true);
    }
}

。。它创建了一个带有黑色背景的1280x720窗口(这很好),它还在我的屏幕左上角创建了一个浮动按钮。。如何使按钮位于窗口中?

您正在创建窗口子类的实例,该子类在其构造函数中创建一个框架(它本身就是一个窗口)。您正在显示此空框,并将按钮添加到正在创建的窗口中。所以最后你有两个窗口


我认为你真正想要的是创建一个并且只有一个框架。您的类不应该扩展窗口,所有这些都不应该在构造函数中完成。此外,AWT有点过时。你应该使用Swing。Oracle有一个关于Swing的很棒的教程,顺便说一句,它还解释了如何使用布局管理器(您应该这样做)

您正在创建Window子类的实例,该子类在其构造函数中创建一个框架(其本身就是一个窗口)。您正在显示此空框,并将按钮添加到正在创建的窗口中。所以最后你有两个窗口


我认为你真正想要的是创建一个并且只有一个框架。您的类不应该扩展窗口,所有这些都不应该在构造函数中完成。此外,AWT有点过时。你应该使用Swing。Oracle有一个关于Swing的很棒的教程,顺便说一句,它还解释了如何使用布局管理器(您应该这样做)

就我个人而言,我会使用基于Swing的组件而不是AWT(就我个人而言),除此之外,还有更多的组件和支持

包含的
是无效引用,您不需要它。您创建了两个窗口,并且只显示没有按钮的窗口。放弃对框架的引用,转而依赖窗口

public DefaultWindow()
{
    setBackground(Color.black);
    setLocation(0, 0);
    setSize(1280,720);
    Button comp = new Button("Hello");
    setLocation(0, 0);
    comp.setSize(10, 10);
    add(comp);
    pack();
    setVisible(true);
}
我会避免将窗口设置为任意大小,并非所有屏幕都相同

您还将运行布局管理器,这意味着您提供给按钮的设置可能会被覆盖


我会花时间亲自阅读,我会使用基于Swing的组件而不是AWT(个人),除此之外,还有更多的组件和支持

包含的
是无效引用,您不需要它。您创建了两个窗口,并且只显示没有按钮的窗口。放弃对框架的引用,转而依赖窗口

public DefaultWindow()
{
    setBackground(Color.black);
    setLocation(0, 0);
    setSize(1280,720);
    Button comp = new Button("Hello");
    setLocation(0, 0);
    comp.setSize(10, 10);
    add(comp);
    pack();
    setVisible(true);
}
我会避免将窗口设置为任意大小,并非所有屏幕都相同

您还将运行布局管理器,这意味着您提供给按钮的设置可能会被覆盖

我会花时间通读一遍

问:所以,我一直避免在java中使用GUI,因为我个人认为 受不了鬼

答:嘿,我以为只有我一个人在这个星球上:)我的座右铭一直是“GUI让简单的任务变得更容易…而困难的任务则完全不可能”;)

至于你的问题:答案是:

1) Swing适用于“厚客户端”(即Java桌面应用程序)

2) JSP适用于“web应用程序”(即客户端/服务器web应用程序)

3) 甚至不要考虑在整个GUI中使用AWT,它在Java历史的早期(特别是Java 1.2)就被弃用了

以下是一些很好的教程:

附言: 不管我怎么说GUI和IDE都会很有帮助

就我个人而言,我使用Eclipse。有几个原因:

  • Eclipse(和大多数IDE一样)可以用于cmd行、Swing、JSP和JavaEE应用程序

  • Eclipse(与Netbeans或IntelliJ不同)对Android应用程序同样有用

  • Eclipse有一个非常广泛的第三方插件生态系统(来自IBM和Google等不同的公司)

我想

问:所以,我一直避免在java中使用GUI,因为我个人认为 受不了鬼

答:嘿,我还以为只有我一个人在这个星球上:)我的座右铭一直是“GUI让简单的任务变得更容易。。。困难的任务是完全不可能的”

至于你的问题:答案是:

1) Swing适用于“厚客户端”(即Java桌面应用程序)

2) JSP适用于“web应用程序”(即客户端/服务器web应用程序)

3) 甚至不要考虑在整个GUI中使用AWT。它在Java历史的早期(特别是Java1.2)就被弃用了

以下是一些很好的教程:

附言: 不管我怎么说GUIs。。。IDE可以非常有帮助

就我个人而言,我使用Eclipse。有几个原因:

  • Eclipse(和大多数IDE一样)可以用于cmd行、Swing、JSP和JavaEE应用程序

  • Eclipse(与Netbeans或IntelliJ不同)对Android应用程序同样有用

  • Eclipse有一个非常广泛的第三方插件生态系统(来自IBM和Google等不同的公司)


IMHO…

为什么不使用Swing?在添加按钮(或其他任何内容)之前,使用非空参数调用
this.setLayout
。移除组件设置位置和组件设置尺寸线;布局的工作是根据按钮的大小需要确定适当的大小。确切地说,你应该使用哪一个布局类是一个单独的(和长期的)讨论;您将需要阅读每一种GUI的javadoc,您可能会发现这很烦人,因为您不喜欢GUI,但是GUI的数量并不是很多,这对于GUI开发来说是绝对必要的。以下是读者可以看到的所有问题:“所以,我一直避免在java中使用GUI,因为就我个人而言,我无法忍受GUI。但是,我启动了一个项目,要求我使用GUI,而且,毫不奇怪,我遇到了问题……我有这个…”。你不希望他们看到开始“我有一点GUI代码”的东西吗