Java GUI:如何向“Frame”类添加多个类

时间:2014-06-10 17:52:17

标签: java swing user-interface

我是Java编码的完全初学者,之前我从未使用过GUI。这就是我想要做的。我有主要类“Frame”和两个类:“Circle”和“Square”。如何将圆形和方形添加到框架中它们将出现在框架上?

很抱歉这个简单的问题,但我需要你的帮助。 提前谢谢!

public class Frame extends JFrame{

    public static void main(String[] args) {
        Frame f = new Frame();
        Circle circle  = new Circle();
        Square square  = new Square();
        f.add(circle);
        f.add(square);
    }

    public Frame(){
        setTitle("Frame");
        setSize(500, 500);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}



public class Circle extends JFrame{

    public Circle(){
    }

    public void paint(Graphics g){
        g.setColor(Color.GREEN);
        g.drawOval(300, 300, 200, 200);
    }
}


public class Square extends JFrame{

    public Square(){
    }

    public void paint(Graphics g){
        g.setColor(Color.GREEN);
        g.drawRect(300, 300, 500, 500);
   }
}

1 个答案:

答案 0 :(得分:1)

首先,您不能将JFrame添加到JFrame,因为您要向窗口添加窗口。你可以做的是make circle和square扩展JPanel。通过这种方式,您可以毫无问题地将它们添加到JFrame中,并且可以执行他们必须执行的操作。我的JDK也告诉我Circle和Square应该有自己的文件。而且,根据您在JFrame中添加正方形和圆形的顺序,您只会看到其中一个,因为第二个绘制在第一个上面。好的,所以在此之后你的代码将变成:

文件1框架:

public class Frame extends JFrame{

public static void main(String[] args) {
    Frame f = new Frame();
    Circle circle  = new Circle();
    Square square  = new Square();
    f.add(circle);
    f.add(square);
}

public Frame(){
    setTitle("Frame");
    setSize(500, 500);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}

}

文件2圈:

public class Circle extends JPanel{

public Circle(){
}

public void paint(Graphics g){
    g.setColor(Color.GREEN);
    g.drawOval(300, 300, 200, 200);
}

}

档案3广场:

public class Square extends JPanel{

public Square(){
}

public void paint(Graphics g){
    g.setColor(Color.GREEN);
    g.drawRect(300, 300, 500, 500);

} }



希望这能帮到你,你明白为什么会这样。如果您不想要求更多澄清。

附:欢迎使用Java GUI编程;)