我是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);
}
}
答案 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编程;)