【发布时间】:2010-10-16 05:59:20
【问题描述】:
我目前正在使用 AWT GUI 制作程序,但遇到了问题。我基本上想要屏幕左上角的图像,以及图像右侧的一列按钮。但这不是正在发生的事情。当我运行小程序时,我单击一个弹出窗口,显示“启动程序”,然后我想要的图片在小程序窗口本身中,而按钮列本身在另一个窗口中。这是它的样子:
有没有办法解决这个问题,使图像和按钮在同一个窗口中?
【问题讨论】:
我目前正在使用 AWT GUI 制作程序,但遇到了问题。我基本上想要屏幕左上角的图像,以及图像右侧的一列按钮。但这不是正在发生的事情。当我运行小程序时,我单击一个弹出窗口,显示“启动程序”,然后我想要的图片在小程序窗口本身中,而按钮列本身在另一个窗口中。这是它的样子:
有没有办法解决这个问题,使图像和按钮在同一个窗口中?
【问题讨论】:
是的。您正在创建一个框架,但您的图形不在框架内。没有代码就不能说太多,但是 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
【讨论】: