【问题标题】:Working with frames and Java AWT使用框架和 Java AWT
【发布时间】:2010-10-16 05:59:20
【问题描述】:

我目前正在使用 AWT GUI 制作程序,但遇到了问题。我基本上想要屏幕左上角的图像,以及图像右侧的一列按钮。但这不是正在发生的事情。当我运行小程序时,我单击一个弹出窗口,显示“启动程序”,然后我想要的图片在小程序窗口本身中,而按钮列本身在另一个窗口中。这是它的样子:

有没有办法解决这个问题,使图像和按钮在同一个窗口中?

【问题讨论】:

    标签: java layout awt


    【解决方案1】:

    是的。您正在创建一个框架,但您的图形不在框架内。没有代码就不能说太多,但是 java.sun.com 上的 AWT Tutorial 在这方面还不错。


    好吧,再多一点(我很久没用AWT了。)

    这是您遇到的几个问题。 Frame 是一种 Window —— 它想成为一个单独的窗口,有自己的关闭按钮等等。

    当你创建你的图形时,你必须告诉它是它的父组件;您以某种方式将其作为Applet的父母。所以你有一些看起来像

    的代码
    add(myComponent);
    

    在 Applet 的上下文中为 this

    public class myApplet extends Applet {
       // lots of stuff here creating your canvas, putting the image in it
       // and so forth.  There's an example, see fn 1.
       // When you're done, you have a component, call it myImage.
    
       add(myImage);
    }
    

    您有一个框架,并且您正在向其中添加按钮。

    public class MyFrame extends Frame {
    
        add(new Button(...));
        add(new Button(...));
    
    }
    

    您需要通过某种方法将添加 Canvas 的代码移动到 Frame 类中。

    (警告:这是不是完整的Java代码,我不记得正确方法的名称。可能是Applet中的init()方法,至少。

    fn1。 http://java.sun.com/developer/onlineTraining/awt/contents.html#simpleexample

    【讨论】:

    • 是的,我已经遵循了一点。这是我第一次使用 AWT :S 无论如何,谢谢你,如果有人有更多建议,请发表。再次感谢!
    • 我不确定我是否正确添加了图像。这是我的主类目前的样子:friendpaste.com/61E13yV4CSR9JiFZhrDeSe StartFrame 是在游戏开始时弹出的框架WindowFrame 是上面所有按钮的框架。
    • 是的,你来了。在您的 Applet ctor 中,您正在创建一个 MediaTracker,然后在此处添加图形。这意味着您正在将图形添加到 Applet。这里有一个提示:从一个干净的目录开始,一次构建一个小块。
    • 就像,制作你的基本小程序,在其中放置一个文本框,确保你能看到它。制作你的框架,并编写一个主要方法,以便你可以独立运行它。试试这些。
    • 好吧,我可能会创建一个空项目并搞砸它,直到我更好地理解它。谢谢。
    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2018-03-25
    • 2016-01-31
    • 2012-04-11
    相关资源
    最近更新 更多