我正在通過練習來理解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