簡體   English   中英

如何從內部類更改文本字段中的文本?

[英]How to change text in text-field from inner-class??

我想通過在按鈕上使用actionlistener來更改JTextField中的文本。 有一個單選按鈕組,Sort.SWITCH根據所選的單選按鈕更改其值。

因此,當按下排序按鈕時,“輸出”字段中的文本必須從“輸出”更改為“某些文本” ..但是錯誤是無法從內部類訪問“輸出”字段。 請告訴我正確的方法。 謝謝..

 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;

 class Sort extends JFrame
 {
     ...
 }
 class q2 extends Sort
 {
     public static void main(String[] args)
     {
             ...
             JTextField Output = new JTextField(50);
             Output.setText("Output");
             ResultPanel.add(Output);
             SortButton.addActionListener(new ActionListener() {

                 public void actionPerformed(ActionEvent a)
                 {
                       if (Sort.SWITCH == 1)
                       {
                          Output.setText("Some Text");
                       }
                       else if ...
                       ...
                 } });
            }}

要從匿名類內部訪問變量,請將變量定義為字段(而不是局部變量)或final

public static void main(String[] args){
    //...
    final JTextField Output = new JTextField(50);

匿名內部類只能訪問定義類中的字段或final變量。

Output定義為類字段:

 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;

 class Sort extends JFrame
 {
     ...
 }
 class q2 extends Sort
 {
     public JTextField Output;
     public static void main(String[] args)
     {
             ...
             Output = new JTextField(50);
             Output.setText("Output");
             ResultPanel.add(Output);
             SortButton.addActionListener(new ActionListener() {

                 public void actionPerformed(ActionEvent a)
                 {
                       if (Sort.SWITCH == 1)
                       {
                          Output.setText("Some Text");
                       }
                       else if ...
                       ...
                 } });
     }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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