各位大俠,
對按鈕添加事件監聽後,點擊按鈕想將文本框中的“123”改為“456”,可為什麼沒有變化呢?代碼如下:
package test2;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ClickAdd extends JFrame
{
private JPanel panel;
private JButton button;
private JTextField field;
public static void main(String[] args)
{
ClickAdd frame = new ClickAdd();
frame.setVisible(true);
}
public ClickAdd()
{
init();
addActionListener();
}
private void addActionListener()
{
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
change();
}
});
}
private void init()
{
panel = new JPanel();
button = new JButton("添加");
String string = "123";
field = new JTextField(string);
panel.add(field);
panel.add(button);
this.setSize(100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(panel);
}
private void change()
{
String string = "456";
field = new JTextField(string);
}
}
而如果把change()中的field = new JTextField(string)改成field.setText(string)就可以了呢?
關於引用和值的問題可以多看c語言中的指針,引用中存儲的是具體內存的地址