myjdialog(myframe.this)为什么要加this

classMyJDialogextendsJDialog{publicMyJDialog(MyFrameframe){super(frame,"第一个Dialog窗体",... class MyJDialog extends JDialog{ public MyJDialog (MyFrame frame){ super(frame,"第一个Dialog窗体",true); Container container = getContentPane(); container.add(new JLabel("这是一个对话框")); //在容器内创建一个Label标签 setBounds(120,120,100,100); }}public class MyFrame extends JFrame{ public static void main(String[] args) { new MyFrame(); } public MyFrame(){ Container container = getContentPane(); container.setLayout(null); JLabel jl = new JLabel("这是一个JFrame窗体"); //这个标签看不到了 jl.setHorizontalAlignment(SwingConstants.CENTER); container.add(jl); JButton bl = new JButton("弹出的对话框"); bl.setBounds(50, 50, 120, 50); bl.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ new MyJDialog(MyFrame.this).setVisible(true); } }); container.add(bl); container.setBackground(Color.pink); //设置容器的颜色 setVisible(true); //设窗口是否出现 setSize(400, 400);//设窗口大小 //设置窗体关闭方式 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); }}
最近在学习java,看到书上的这个代码,想求教2个问题:
为什么新建窗体的时候不new一个myframe的对象mf之后在用Container container = mf.getContentPane();
2.new MyJDialog(MyFrame.this).setVisible(true);这句话里的Myframe.this能帮我解释一下么,为什么这里要加this?谢谢大神们
复制后怎么没格式了。。
展开
 我来答
百度网友477fd7e
2015-06-22 · 超过21用户采纳过TA的回答
知道答主
回答量:67
采纳率:100%
帮助的人:36.2万
展开全部
对于第一个问题:因为.getContentPane()在构造方法里已经执行过了,没必要再执行,你得弄明白,每个方法是干什么用的
对于第二个问题:MyDailog类的构造方法需要传递一个MyFrame类型的变量,MyFrame.this就是指正在创建的MyFrame自己
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式