【发布时间】:2013-09-01 18:01:27
【问题描述】:
我有一个 swing 类,其中包括一个声明为 final 的字符串变量 str3 和两个
两个JButtons b1实现的ActionListener接口
和b2,当b1 JButton被按下时str3字符串取值,
我的问题在这里如何使 str3 值在整个课程中更改
而是在第二个 ActionListener 接口中(不是只在第一个内部类中)。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
public class mySwing extends JFrame {
JButton b1, b2;
public mySwing() {
final String str3;
JPanel panel = new JPanel();
b1 = new JButton("please click me first");
b2 = new JButton("please click me second");
final JTextField txt = new JTextField(" ");
panel.add(txt);
Container pane = getContentPane();
panel.add(b1);
panel.add(b2);
pane.add(panel);
str3 = new String();
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent acv) {
String input = "HelloWorld";
String str3 = new String(input.substring(0, 5));
txt.setText(str3);
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent acv) {
txt.setText(str3);
}
});
setVisible(true);
}
public static void main(String[] args) {
new mySwing();
}
}
【问题讨论】:
标签: java swing inner-classes anonymous-class outer-classes