我的程序运行会跳过一段代码,不清楚是什么原因。
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方法里面编写要画的图形的代码。
修改如下:
参考链接:
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();
}
}