日期:2014-05-20  浏览次数:20689 次

一个java文件中有2个从JFrame继承来的类,其中一个在另一个中new出对象作为参数给第二个用,运行结果为什么会只出现一个JFrame窗口?
本帖最后由 pf711 于 2013-04-11 21:37:48 编辑
各位前辈帮忙给解决一下吧,我是一个刚刚学习java的菜鸟,谢谢大家了!!

import javax.swing.*;
import java.awt.*;
import java.awt.Color.*;

public class  JP1 extends JFrame
{
public static void main(String[] args) 
{
JF0 f = new JF0("主窗口");
JP1 f1 = new JP1(f,100,50,200,200);
}

public JP1 (JFrame f,int x,int y,int w,int h){
Container c =  f.getContentPane();
c.setLayout(null);
c.setBackground(Color.yellow);
JPanel p = new JPanel();
p.setBounds(x,y,w,h);
p.setBackground(Color.blue);
c.add(p);
}
}

class JF0 extends JFrame 
{
public JF0(String s){
super(s);
setBounds(200,200,500,400);
setVisible(true);
}
}

运行结果如下:



------解决方案--------------------
第二个
JP1 f1 = new JP1(f,100,50,200,200);
你就没有创建f1的显示框。你所做的只是调用f1给f0添加内容而已。
你在f1的构造里面加上
this.setBounds(700,700,500,400);
this.setVisible(true);
看看