Java 如何从文档侦听器事件获取JTextArea?

Java 如何从文档侦听器事件获取JTextArea?,java,swing,jtextarea,Java,Swing,Jtextarea,我在Java中为我的JTextArea组件设置了一个名称。我无法在我的设计中创建此文本区域组件全局。我需要获得文本区域的名称,以更改与文本区域相关的按钮的颜色。我该怎么办 JTextArea jtfText1= new JTextArea() ; jtfText1.setText("adsas"); jtfText1.setName("Q "+Integer.toString(a+1)); jtfText1.getDocument().addDocumentListener(new Docu

我在Java中为我的
JTextArea
组件设置了一个名称。我无法在我的设计中创建此文本区域组件全局。我需要获得文本区域的名称,以更改与文本区域相关的按钮的颜色。我该怎么办

JTextArea jtfText1= new JTextArea() ;

jtfText1.setText("adsas");
jtfText1.setName("Q "+Integer.toString(a+1));

jtfText1.getDocument().addDocumentListener(new DocumentListener() {

      public void changedUpdate(DocumentEvent e) {
      }
      public void removeUpdate(DocumentEvent e) {
      }
      public void insertUpdate(DocumentEvent e) {
            System.out.println(a);
              JButton button =(JButton)bottom.getComponent(a-1);
                button.setBackground(Color.GREEN);
                button.setOpaque(true);
      }
    });

在DocumentListener事件中,我需要访问JTextArea组件。实际上,您不能。但是,考虑到您使用的是匿名侦听器,假设它与哪个编辑器关联是非常合理的。另一个选择是创建一个专用的监听器,它可以获取文本区域或/或按钮引用,并根据需要更新“我该怎么做?”完全重新设计应用程序。这是一个被破坏的设计,再多的代码黑客也无法修复它。你为什么不宣布
jtfText1
作为最终设置我的jtfText1最终解决了我的问题。但我不明白为什么它解决了这个问题。