2009-08-17 41 views
2

那麼我決定做一些泥濘的東西,以及我可能在其他地方使用的做法,但是我有一個問題.. 我不知道如何讓它到達用戶的位置可以輸入實際框,而不是一個文本框用java編程的泥幫助

我想解釋更好,但我真的不能想怎麼

+0

好的,我會刺穿這個...你的意思是你不知道如何創建一個可以連接到'telnet'或另一個MUD客戶端的服務器? – erickson 2009-08-17 01:56:22

+0

沒有我的意思是用戶輸入,我不知道如何讓它到用戶可以在輸出部分輸入的地方,這是一個自定義的gui。 – 2009-08-17 07:10:52

+0

啊 - 我們所有有MUD興趣的人都渴望專注於這一點;-)。看到我對我的回答所做的補充,希望這會有所幫助。 – Anon 2009-08-17 14:17:46

回答

1

如果你在談論一個MUD客戶端,並進入同一個窗口中的文本作爲輸出,聽起來就像遇到與通過終端中的裸機telnet玩MUD時一樣的問題 - 這就是當你輸入文本時你輸入的文本會滾動,所以你看不到編輯等,我認爲有一個單獨的領域,你可以在進入之前進行必要的編輯是件好事。

您可以將注意力集中在服務器上,讓用戶(管理員也可以)通過其中一個MUD客戶端(如zMUD)進行連接。不過,我可能會錯誤地解釋你的問題。製作MUD需要大量的東西,所以大多數人在從頭開始時並沒有獲得可行的遊戲 - 但是無論如何,你仍然可以從中學到很多東西。我自己做了,但只是服務器 - 從來沒有做過什麼與客戶端程序或GUI界面。

編輯添加的OP的評論迴應後:

在這個陽光教程看看,看看是否有幫助:

http://java.sun.com/docs/books/tutorial/uiswing/components/textarea.html

第一個示例使用一個單獨的字段輸入,但向下滾動到可能顯示您需要的「TextAreaDemo」示例。

+0

哦,不,你有我的問題吧,我也很想用我自己的命令提示符類型的東西,我正在製作的另一個程序,我知道文字滾動問題,但我仍然想知道如何做到這一點。 – 2009-08-17 05:11:27

+0

我不明白他們的示例代碼,但如果我從它得到的是正確的,那麼所有這一切都是讓文檔從插入位置向後讀取到詞尾? – 2009-08-17 19:11:56

+0

否 - 在我相信您正在查看的部分中,該程序正在檢查單詞以自動完成。基本上,您在該字段中的文本中使用了從零開始的索引。在該示例中,對於程序檢測到的用戶插入事件,該索引是使用ev.getOffset()獲取的,並且當程序本身將字符插入到字段中時,它使用textArea.insert執行此操作。在一個地方,他們稱它爲偏移量,在另一個位置,但在這兩種情況下,它都是一個基於零的索引,其中發生了行動。 – Anon 2009-08-17 20:25:29

1

泥漿沒有那麼複雜。我認爲你所要求的答案是你需要使用TCP/IP telnet端口。

Telnet非常簡單,您只需打開一個端口並開始讀取數據 - 它上面有很多信息,甚至有幾個庫可以幫助您。 (Telnet只是一個標準端口,但是有一點例外,一開始就有一個「談判」,它只是往返發送幾個字節,但如果你不這樣做,那麼什麼都不會發生) 。所以你寫你的代碼並開始監聽一個端口(4444是一個普通的MUD端口iirc)。然後你運行你的telnet客戶端並連接到那個端口。它會爲每個呼入者創建一個新的端口連接。您可能有一個線程監聽每個端口,監聽您正在輸入的內容,處理後退空間並可以將完成的命令發送到您的主泥漿系統(由於許多端口可能一次發送命令)。

其實很簡單。從Java開始尋找一個用於Java的telnet庫。

快速搜索找到JavaSSH也可以處理telnet。

編輯:我應該指出,他們不容易做任何!製作地圖,裝備和怪獸的所有數據驅動,以便你不必爲每個怪物重建需要一些預先考慮......這些東西之一,你可能會寫你的第一個並在決定之前使用它一個月它需要從頭開始重新編寫。

我只是指出你可能想要檢查已經存在的泥源。我發現diku很小,很容易理解。