Java Swing 中 JFrame 和 this 的区别与正确使用方式

目录

1.问题背景

2.JFrame 和 this 的核心区别

3.不同场景下的使用方法

4.常见错误分析

5.总结

6.讨论


1.问题背景

在Java Swing 开发中,我们经常用到JFrame构建窗口;

用JFrame frame=new JFrame( ); frame.setTitle("xxx");可以正常运行。

但用this.setTitle("xxx");却可能报错或无效。

本文深入分析它们的区别,并给出正确的使用方式。


2.JFrame 和 this 的核心区别

(1)JFrame 是类名,this是当前对象引用

JFrame: 是java.swing.JFrame这一类,必须通过创建实例才能调用方法,

如:

JFrame frame = new JFrame();  //创建一个实例
frame.setTitle("Hello");    //调用方法

this:指当前类的实例,若当前类继承JFrame 则可调用JFrame方法。


3.不同场景下的使用方法

场景1:当前类继承JFrame

import javax.swing.*;

public clas MyFrame extends JFrame{   //继承JFrame
      public MyFrame(){
      this.setTitle("使用this");      //this调用方法,this就是窗口
      this.setSize(400,300);          //设置关闭方式
    }
      public static void main(String[] args){
      new MyFrame().setVisible(true); //调用方法显示窗口
    }

}

说明:由于Myframe 继承JFrame,this 就是当前窗口对象,可以直接用this调用方法


场景2:当前类不继承JFrame

import javax.swing.*;
public class MyFrame{    //不继承JFrame
    JFrame frame;
    public MyFrame(){
       frame=new JFrame(); //必须创建实例
       frame.setTitle(‘使用JFrame“);
       frame.setSize(400.300);
    }
    public static void main(String[] args){
       new  MyFrame().frame.setVisible(true);//显示窗口
    }
}

说明:当前没有继承JFrame方法,只能通过实例调用方法


4.常见错误分析

错误1:this无法调用JFrame 方法

未继承JFrame类

错误2:窗口不显示

没有调用setVisible(true)


5.总结

JFrame是一个类必须通过实例调用方法;

this能否调用JFrame方法,取决于当前类是否继承JFrame;

继承JFrame适合简单窗口,不继承适合多个窗口,灵活度更高。


6.讨论

你在使用JFrame和this时遇到了什么问题?


版权声明:本文由Hygge-star原创,转载需注明出处。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值