我正在通过练习来理解Java,基本上我需要将两个类的功能合并到一个应用程序中。卡住在Java中的对象范围
虽然我被卡在一个区域 - 跨类的对象的引用。
我所做的是在一个类(test1)中设置了一个gui,并且它在ie中有一个textfield。
chatLine = new JTextField();
另一个类(测试2)
,我打算在离开那里的所有功能,并引用在test1的成立,对各种图形元素 - 这样test1.chatLine
我明白这个级别的引用,我通过在测试2级
public static void testpass() {
test1.testfield.setText("hello");
}
我想了解如何实施,虽然在测试2级的更复杂的功能,特别是这个现有的代码设置测试方法测试这一点;
test1.chatLine.addActionListener(new ActionAdapter() {
public void actionPerformed(ActionEvent e) {
String s = Game.chatLine.getText();
if (!s.equals("")) {
appendToChatBox("OUTGOING: " + s + "\n");
Game.chatLine.selectAll();
// Send the string
sendString(s);
}
}
});
这是我卡上,如果我应该能够做到这一点位 - 因为它是失败的编译,可我的actionadapter东西添加到GUI元素多数民众赞成在test1的坐着,但做这从测试2 - 我想知道如果我试图做一些不可能的事情。
希望这是有道理的,我很困惑这一点 - 我想了解范围和引用的工作原理。
理想情况下,我试图实现的是一个类中有所有主要的东西,gui等,然后在其他类中的所有相关功能,并针对第一类的gui元素与结果等。
任何想法非常感谢。
嗨,道歉 - 我意识到它有点含糊,chatline var是公共静态JTextField chatLine;在test1类中。我将test2中的测试方法推荐给了这个public static void testpass(){} { \t \t \t \t Game.chatLine.setText(“hello”); \t} 它工作,但它的所有test1.chatLine.addActionListener(新的ActionAdapter(),我试图undertsand - 它可能添加侦听器从test2类聊天文本字段,而它是坐在test1类中 – ivor 2010-03-31 11:27:55
可以从任何可以访问chatLine的地方调用chatLine.addActionListener;你可能在其他地方有一个错误,如果你提供了编译器的错误信息可能会有所帮助 – Arkku 2010-03-31 12:08:46
这似乎是我得到的这个错误指向test1.chatLine.addActionListener(new ActionAdapter(); 线程“main”中的异常java.lang.NullPointerException – ivor 2010-03-31 12:54:56