次のような構造の Java-Swing-GUI を取得しました:
JFrame
-- JPanel1
-----jButton1
-----jLabel1
私の目標は、jButton1 が押されたときに jLabel1 の色を変更したり、テキストを設定したりすることですが、これは外部クラス (externalClass と呼びましょう) で行う必要があります。
したがって、GUI クラスのコンストラクターで、自分自身を外部クラスに渡します。
public class GUIclass extends javax.swing.JFrame {
private externalClass e;
public GUIclass() {
initComponents();
e = new externalClass(GUIclass.this);
}
私の外部クラスでは、たとえばラベルにアクセスできません:
private GUIclass g;
public externalClass(GUIclass g) {
this.g = g;
System.out.println(g.getComponentCount());
// --> only 1, is this the JFrame (?)
System.out.println(g.getComponent(0).getName());
// always "null"
}
レーベルにアクセスする方法を誰か説明してくれませんか? また、コンポーネントの名前が常に「null」である理由も気になります。
前もって感謝します!