我正在创建几个类来简化创建GUI,应用辅助功能设置,绘制图形等过程.我已经走过了漫长的道路.但是我有一个想法,如果可行的话会很棒,而且我想知道它是否可行.
现在,我有一个"JFrameBuilder"类,其方法如下:
/**
* The "addButton" method adds a button to a JFrame
* @param app The parent window (a JFrame)
* @param text The button text
* @param x The x-coordinate where the button should appear
* @param y The y-coordinate where the button should appear
* @param width The width of the button
* @param height The height of the button
* @return A JButton object (it returns an object so programs can manipulate it later)
*/
public …
Run Code Online (Sandbox Code Playgroud) 我有一个问题,我确信在某些时候,每个中级Python程序员都会想到这个问题:也就是说,如何修复/阻止/避免/解决那些永远存在且同样令人沮丧的问题NameErrors
.我不是在谈论实际错误(如拼写错误等),而是一个基本上没有定义全局名称的奇怪问题,而实际上它是进一步定义的.无论出于何种原因,Python似乎在这个领域非常需要:每个变量绝对肯定必须在上面定义并且只在引用它的任何东西之上(或者看起来如此).
例如:
condition = True
if condition == True:
doStuff()
def doStuff():
it_worked = True
Run Code Online (Sandbox Code Playgroud)
让Python给我这个:
Traceback (most recent call last):
File "C:\Users\Owner\Desktop\Python projects\test7.py", line 4, in <module>
doStuff()
NameError: name 'doStuff' is not defined
Run Code Online (Sandbox Code Playgroud)
但是,WAS定义了这个名称,而不是Python显然想要它的地方.所以对于一个俗气的小功能来说,doStuff()
这没什么大不了的; 只需将功能剪切并粘贴到满足系统对特定订单要求的区域即可.但是当你尝试用它来实际设计一些东西时,它几乎不可能组织代码(我必须"解组"大量的代码来容纳这个bug).我从来没有遇到过我写过的任何其他语言的问题,所以它似乎特定于Python ...但无论如何我在文档中研究了这个并且没有找到任何解决方案(甚至是潜在的导致可能的解决方案)所以我会感谢任何提示,技巧,变通方法或其他建议.
它可能就像学习特定的组织结构一样简单(比如某种"Pythonic"和非常具有战略性的解决方法),或者只是使用大量import
语句,因此组织特定组织结构会更容易令系统不能起作用的命令......
本主题是为了回应我在计算机上正确设置Pygame的问题.我有Windows 7,Python 3.3和"64位"Windows(现在我知道一点点和一个字节,但我真的不明白拥有"64位"计算机的含义)我精通Python但对二进制文件,依赖项,注册表或其他此类内部/系统级结构一无所知; 并不是说我不感兴趣,但目前发生的大部分内容基本上都是"在我头上".
但无论如何,据说,我遇到的问题基本上是我无法安装pygame.我已经浏览了同一个问题的几个版本(在Stack Overflow和网络上的其他地方),我试图无数次安装pygame.有时它似乎工作正常,直到我尝试使用它(安装似乎已成功但Python在我尝试使用pygame时给我错误),或者我得到的一些关于Python 3.3不在我的"注册表"(来自对于那些理解"宇宙基本代码"的人来说,我读到的似乎是另一个操作系统级/内部结构.他们实际上可以开发一系列关于安装过程的教程.:)
但是所有的开玩笑说,我在这里不知所措,并考虑放弃pygame.所以我的问题是,有没有办法使用已经安装的(Python的库等)来开发游戏?如果没有,您是否知道任何不需要相同级别的安装经验的替代方案?我已经用Google搜索过了,但我在Python中发现的关于游戏设计的所有内容都可以追溯到pygame.提前致谢.
我很抱歉这很可能是太基本是在这里,但它是一个问题,我一直在努力,现在用了一个月,我不知道还有什么地方去(据我所知,应该没有" noob溢出",哈哈).
我正在尝试创建一个类:
1. put an image on a window (a JFrame, JPanel or other container)
2. be able to support keyboard and mouse listeners
3. could have multiple instances in the same container
Run Code Online (Sandbox Code Playgroud)
所以无论如何我已经尝试了所有常用的地方 - 谷歌,YouTube,官方Java网站(抱歉忘记了URL),当然还有堆栈溢出 - 但是找不到任何东西,甚至远远类似于我的东西试图做.
当然,我也考虑过可能根本无法完成的可能性.似乎没有像JButton或JLabel那样工作的任何标准"JImage"或"JGraphic",无论出于何种原因,图形需要完全不同的(非常复杂的)流程和程序列表.作为一个例子,在这篇文章中:如何"真正"在Java应用程序中绘制图像 - 我花了60多行代码和2个类来接近.该项目最终不起作用,因为出于某种原因,它只会让我创建一个实例(即使你在main方法中创建了2-4个,它也只显示你告诉它添加的最后一个实例).
但无论如何,假设我没有试图"重新发明轮子",这里,它实际上是可能(在Java中),没有任何人有一个想法,以如何(或者至少知道一个更好的网站,研究它) ?不幸的是,我访问过的大部分网站都倾向于假设你知道图像的所有内部工作原理(我知道像素是什么,但就是它 - Buffers,Rastars等仍然超出我的范围).如果有一个网站能够以外行的方式解释它,如果这样的网站存在,那将是绝对优秀的.提前致谢.
好的,所以这个问题可能太基础了,但我一直在谷歌上搜索并且无法挖掘解决方案(甚至是解决方法).如果你们有些人不喜欢这个,我会提前道歉.
我正在创建一个带有几个按钮的GUI应用程序,所以当然我们需要一个鼠标事件(当单击其中一个按钮时).例如:
public class myProject extends JFrame implements MouseListener {
public int x = 4;
public static void main(String[] args) {
Jframe app = new JFrame();
app.setTitle // and all that jazz...
JLabel label = new JLabel();
label.setText("Old text");
app.add(label);
// Then later on...
public void mouseClicked(MouseEvent e) {
app.setTitle("New Title");
label.setText("New text");
System.out.println(x);
// "app" and "label" throw errors, cannot find symbol
// But x is fine...?
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试将app元素设置为公共/私有实例变量,但这似乎没有改变任何东西.我甚至尝试创建一种中间类来帮助,一种将对交互器的引用复制为实例变量,并使用那些使用这些引用的鼠标事件调用方法(第二次尝试非常接近上面的代码;但是通过尝试从main方法引用set public变量给了我更多的错误(关于我们怎么不能从静态方法调用非静态对象).
因此,到目前为止,与这个野兽虫争斗的底线是"野鹅追逐",所以我很感激您可能知道的任何提示/技巧/解决方法.谢谢.:)
java ×3
python ×2
swing ×2
function ×1
image ×1
jlabel ×1
mouseevent ×1
namespaces ×1
object ×1
pygame ×1
python-3.3 ×1