[英]Java, accessing a swing element from a separate class
只是一個簡單的問題。
我在用Java工作。 我有2個單獨的課程:
public class MulticastChatGUI extends javax.swing.JFrame{
}
和
public class MulticastThread extends Thread{
}
因此,我真正想做的就是從Thread類中的GUI中訪問一個元素,即文本區域。 這可能嗎? 預先感謝您可能是一個非常簡單的問題。
可能嗎? 是的,但是必須小心。
例如,您可以為您的MulticastThread類提供一個MulticastChatGUI變量,然后通過構造函數參數或setter方法將當前MulticastChatGUI實例的引用傳遞到MulticastThread對象中。
例如,
// constructor
public MulticastThread(MulticastChatGUI multicastChatGui) {
this.multicastChatGui = multicastChatGui;
}
// or setter
public void setMulticastChatGUI(MulticastChatGUI multicastChatGui) {
this.multicastChatGui = multicastChatGui;
}
到目前為止,對於您希望一個班級與另一個班級對話的任何程序,問題和解決方案都是相同的。
但是,必須小心,無論何時在JTextArea
上調用Swing方法時,都只能在Swing事件線程上進行,否則就有可能發生有害的,難以調試的和間歇性的線程異常。
請注意,不要讓一個對象直接訪問另一對象的字段(在此為JTextArea
),而是讓具有JTextArea
的類將其設置為私有,並為其提供公共方法,以允許外部類在受控的情況下更改其形狀,這是更清潔的方法。方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.