会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134118个问题

"""开发记事本软件的菜单"""
from tkinter import *
#from tkinter.filedialog import *
#from tkinter.colorchooser import *


class Application(Frame):

    def __init__(self, master=None):
        super().__init__(master)
        self.master=master
        self.textpad=None           #textpad 代表Text文本框对象
        self.pack()
        self.createWidget()

    def createWidget(self):
        #创建主菜单栏
        menubar = Menu(root)

        #创建子菜单
        menuFile = Menu(menubar)
        menuEdit = Menu(menubar)
        menuHelp = Menu(menubar)

        #将子菜单加入到主菜单栏
        menubar.add_cascade(label="文件(F)", menu = menuFile)
        menubar.add_cascade(Label="编辑(E)", menu = menuEdit)
        menubar.add_cascade(Label="帮助(H)", menu = menuHelp)

        #添加菜单项
        menuFile.add_command(Label="新建", accelerator="ctrl+n", command=self.test)
        menuFile.add_command(Label="打开", accelerator="ctrl+o", command=self.test)
        menuFile.add_command(Label="保存", accelerator="ctrl+s", command=self.test)
        menuFile.add_separator()    #添加分割线
        menuFile.add_command(Label="退出", accelerator="ctrl+q", command=self.test)

        #将主菜单添加到根窗口
        root["menu"] = menubar

        #文本编辑区
        self.textpad = Text(root, width=40,height=40)
        self.textpad.pack()

        #创建上下菜单
        self.contextMenu = Menu(root)
        self.contextMenu.add_command(label="背景颜色", command=self.test)

        #为有绑定事件
        root.bind("<Button-3>", self.createContextMenu)

    def text(self):
        pass

    def createContextMenu(self, event):
        #菜单在鼠标右键的点击坐标处显示
        self.contextMenu.post(event.x_root, event.y_root)


if __name__ == "__main__":
    root = Tk()
    root.geometry("400x300+200+300")
    root.title("简易记事本")
    app = Application(master=root)
    root.mainloop()

1636467764(1).png老师,请问这是哪里有错误?

Python全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 31067楼
JAVA 全系列/第十五阶段:分布式文件存储与数据缓存/MongoDB 31068楼
WEB前端全系列/第十一阶段:前端工程化/Webpack 31069楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 31070楼
JAVA 全系列/第十阶段:权限控制与安全认证/Shiro(旧) 31072楼
Python全系列/第七阶段:生产环境部署与协同开发/Linux基本命令 31073楼
JAVA 全系列/(旧的隐藏)第十五阶段:百战商城项目(Spring Cloud最新架构)/百战商城项目 31074楼
Python全系列/第八阶段:Web全栈开发基础与前端/HTML5 31076楼

版本0.3同样不知道错在哪,网上搜索说可能是图片路径不对,核对后发现没问题啊

package cn.sxt.game;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
/**
 * 飞机游戏的主窗口
 * @author 高毅
 *
 */
public class MyGameFrame extends JFrame{
	
	Image plane = GameUtil.getImage("images/plane.png");
	Image bg = GameUtil.getImage("images/bg.jpg");
	
	int planeX = 250,planeY = 250;
	
	@Override
	public void paint(Graphics g) {  //自动被调,g相当于一支画笔
		super.paint(g);
		g.drawImage(bg, 0, 0, null);
		g.drawImage(plane, 250, 250, null);
		planeX++;
	}
	//内部类方便使用外部类的属性方法
	
	//帮助我们反复重画窗口
	class PaintThread extends Thread{
		@Override
		public void run() {
			while(true) {
				System.out.println("窗口画一次");
				repaint();  //重画
				
				try {
					Thread.sleep(40);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}  //1s=1000ms
			}
		}
	}
	
	
	/**
	 * 初始化窗口
	 */
	public void launchFrame(){
		this.setTitle("尚学堂学员,程序员作品");		
		this.setVisible(true);  //设置可见
		this.setSize(500, 500);  //设置窗口大小
		this.setLocation(300,300);  //窗口位置
		
		
		this.addWindowListener(new WindowAdapter() {
			//设置窗口关闭
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		new PaintThread().start(); //启动窗口重画的线程
		
	}
	
	public static void main(String[] args) {
		MyGameFrame f = new MyGameFrame();
		f.launchFrame();
	}
}

错误显示如下:

blob.png

JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 31077楼
Python全系列/第一阶段:AI驱动的Python编程/控制语句 31078楼
Python全系列/第二十四阶段:人工智能基础_机器学习理论与实战/线性回归与梯度下降法 31079楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637