簡體   English   中英

Java,從單獨的類訪問swing元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM