java程序运行过程中有一部分代码没有执行,不知道应该怎么写才可以执行

我的程序运行会跳过一段代码,不清楚是什么原因。

public class MyNotepad extends JFrame {

        // 窗口参数定义代码

    public void paint(Graphics g) {
        super.paint(g);
        // Add custom painting code here
    }

    public void init() {
        // Add initialization code here
    }

    public static void main(String[] args) {
        new MyNotepad().init();
    }
}

现在是运行的时候直接跳过

```java
public void paint(Graphics g) {
super.paint(g);
// Add custom painting code here
}

```这部分代码,不知道是什么原因,方便指导一下吗?

paint这个方法不是没有调用么

你在main函数里面都没有调用这个方法呀,main函数中只调用用init方法而已,如果你要调用的可以这样:

public class MyNotepad extends JFrame {
 
        // 窗口参数定义代码
 
    public void paint(Graphics g) {
        super.paint(g);
        // Add custom painting code here
    }
 
    public void init() {
        // Add initialization code here
    }
 
    public static void main(String[] args) {
        // 这样两个都会调用
        MyNotepad mynotepad = new MyNotepad();
        mynotepad.init();
        mynotepad.paint();
    }
}
 

如果是使用JFrame来创建一个窗口,在创建对象之后,还需要设置它的一些参数才能正常运行,然后在paint方法里面编写要画的图形的代码。

修改如下:

参考链接:


https://blog.csdn.net/listeningdu/article/details/127998126

https://www.jianshu.com/p/34c72e82de2b

https://blog.csdn.net/liangqibinde/article/details/84037081

https://blog.csdn.net/weixin_32535389/article/details/114058609


import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class MyNotepad extends JFrame {
 
       
    public MyNotepad() {
        
    }
    // https://www.jianshu.com/p/34c72e82de2b
    public void paint(Graphics g) {  // 编写要画的图的代码
     //  super.paint(g);
        // 在此处调用方法画图
        g.drawLine(200,100,100,100);
        g.drawLine(150,100,100,200);
        g.drawRoundRect(200,200,50,20,50,50);
        
        //  https://blog.csdn.net/weixin_32535389/article/details/114058609
        // https://blog.csdn.net/liangqibinde/article/details/84037081
        Graphics  hg = getGraphics();
        String name = "f:\\background.png";  //图片文件地址
        Image img = Toolkit.getDefaultToolkit().getImage(name);
        hg.drawImage(img, 0, 0,350,350, this); 
        hg.dispose();
      
    }

    public void init() {  // 设置各参数
        
        // https://baijiahao.baidu.com/s?id=1747173703560965695&wfr=spider&for=pc
          this.setTitle("TestJFrame");  //设置窗口的标题
          
        // https://blog.csdn.net/listeningdu/article/details/127998126
          
        // Add initialization code here
        /*设置窗体左上角与显示屏左上角的坐标,
        离显示屏上边缘300像素,离显示屏左边缘300像素   */
        this.setLocation(350,350);
        //f.setLocationRelativeTo(null);本语句实现窗口居屏幕中央
        this.setSize(350,350);
        //设置窗体的大小为300*200像素大小
        this.setResizable(false);
        //设置窗体是否可以调整大小,参数为布尔值
        //设置窗体可见,没有该语句,窗体将不可见,此语句必须有,否则没有界面就没有如何意义了
        this.setVisible( true);
        //用户单击窗口的关闭按钮时程序执行的操作
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
        
    }
 
    public static void main(String[] args) {
       new MyNotepad().init();
  
    }
}
 
 
 

img