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