(Python版本:3.1.1)
我StringVar在tkinter 遇到了一个奇怪的问题.尝试在项目中持续更新Message小部件时,我在尝试创建变量时不断收到错误.我跳到一个交互式python shell进行调查,这就是我得到的:
>>> StringVar
<class 'tkinter.StringVar'>
>>> StringVar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\tkinter\__init__.py", line 243, in __init__
Variable.__init__(self, master, value, name)
File "C:\Python31\lib\tkinter\__init__.py", line 174, in __init__
self._tk = master.tk
AttributeError: 'NoneType' object has no attribute 'tk'
>>>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我在tkinter用法上看到的每个例子都显示初始化变量时没有发送给构造函数,所以如果我遗漏某些东西,我会感到茫然......
(不是这样)这里的简短问题.我正在制作一个简单的roguelike,使用Swing作为UI而不是控制台(这使得它更容易在Eclipse中工作,除其他外)但我似乎遇到了障碍.
我遇到的麻烦是,当我进入游戏循环时,UI将无法正常显示.我得到一个丑陋的窗框,在整个过程中给我"单人纸牌"的效果,而在运行它时,它的RAM使用量会迅速增长.
我在这里错过了一些关于Swing的批评吗?我是否必须使用Swing的并发设置来执行此操作?如果是这样,最好的方法是什么?
完整代码如下:
package roguelike;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.LinkedList;
import javax.swing.*;
import javax.swing.text.*;
public class roguelike {
Color c_black = new Color(0x000000);
Color c_white = new Color(0xffffff);
Color c_red = new Color(0xff0000);
Color c_blue = new Color(0x0000ff);
Color c_green = new Color(0x00ff00);
UI ui = null;
Player me = null;
Map gamemap = null;
LinkedList<Character> keyqueue = new LinkedList<Character>();
int charheight = 20;
int charwidth = 80;
public static …Run Code Online (Sandbox Code Playgroud)