我有一個擺動類,包含聲明爲最終String變量STR3和兩個如何在內部變更時通過外部類更改變量值?
的ActionListener接口,其由兩個Jbutton將實施B1
和b2,當按下B1的JButton STR3字符串取值,
這裏如何使整個班級
被改變的,而在第二ActionListener接口(並非僅在第一內部類)STR3值我的問題。
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();
}
}
不,它必須是最終才能從內部類訪問 – JavaFan
只有當它是局部變量時它才必須是最終的。當創建一個實例變量時,它可以被內部類訪問而不是最終的。試試吧。或者看看你的按鈕'b1'和'b2'。他們可以被你的內部課程訪問而不是最終的。 – Holger
請更多解釋我不明白你的想法 – JavaFan