Java AWT集装箱布局

Java AWT集装箱布局,java,awt,layout-manager,Java,Awt,Layout Manager,关于在JavaAWT程序中布局组件,我有一个非常简单的问题 我想要实现的是,将应用程序的背景设置为来自文件systenm的指定图像,并在UI上添加一个按钮 我所拥有的是 package javaapplication2; import java.awt.*; import java.awt.Container; import java.awt.Color; import java.awt.Font; import java.awt.Button; import java.util.HashSet

关于在JavaAWT程序中布局组件,我有一个非常简单的问题

我想要实现的是,将应用程序的背景设置为来自文件systenm的指定图像,并在UI上添加一个按钮

我所拥有的是

package javaapplication2;
import java.awt.*;
import java.awt.Container;
import java.awt.Color;
import java.awt.Font;
import java.awt.Button;
import java.util.HashSet;


public class JavaApplication2 extends Frame {
private Container gui;
private Button b;
public JavaApplication2() {
    setSize(400,400); // set size to 400x400

    gui = new Container() { // my own container that may write string (or draw image in the future)
        public void paint(Graphics g) {
            super.paint(g);
            g.setFont(new Font(null, Font.PLAIN, 48));
            g.setColor(new Color(10,10,10));
            g.fillRect(20, 20, getWidth()-40, getHeight()-40);
            g.setColor(new Color(24, 89, 245));
            g.drawString("hello", 200,200);
        }
    };

    // create a button
    b = new Button("bu");
    // add the button into the container?
    gui.add(b);
    b.setVisible(true);

    // add gui into the root container
    add(gui);
    gui.setSize(400, 400);
    //gui.setVisible(true);  
    validate();
} 

public static void main(String[] args) {
   // TODO code application logic heren
    JavaApplication2 a = new JavaApplication2();
    a.setVisible(true);
}
}
然后当我运行它时,我能看到的只有黑色背景色10,10,10和文本hello。我猜这是因为虽然b被添加到容器中,但是油漆被调用,所以整个容器都被油漆了,所以我看不到按钮


我想应该有一些简单的解决办法,希望有人能帮我。

g.fillRect20,20,getWidth-40,getHeight-40;正在孩子们头顶上画画。您使用AWT有什么原因吗?谢谢。实际上,我正在学习使用BD-J进行编码,BD-J基于Java ME之上的MHP。只有4个awt类可用。这段代码来自MHP的一个示例。我试着用面板代替容器,然后得到了我想要的。但awt.面板在MHP中不可用。所以我会尝试其他方法。无论如何,谢谢。因为t组件并没有真正的背景概念,所以您可能会发现这非常困难。。。。