当前页面: 开发资料首页 → J2SE 专题 → 获得引用
获得引用
摘要: 获得引用
package liyuan;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.JTextComponent;
import liyuan.JFrame1;
public class JFrame1 extends JFrame
{
public JButton bt = null;
public static JTextField tx = new JTextField();
public JFrame1()
{
JFrame F = new JFrame("TextListener");
F.setVisible(true);
F.setSize(200, 100);
tx.setText("123");
F.getContentPane().add(tx,BorderLayout.WEST);
JButton bt = new JButton("Exit");
bt.setBackground(Color.blue);
F.getContentPane().add(bt,BorderLayout.EAST);
F.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
tx.getDocument().addDocumentListener(new Swing_OnValueChanged ());
}
public static void printText(){
String s1 = tx.getText();
System.out.println(s1);
}
public void printText1(){
String s1 = tx.getText();
System.out.println(s1);
}
public JFrame1 getRef(){
return this;
}
public static void main(String args[]){
JFrame1 F = new JFrame1();
F.getRef().printText();
}
public String getString(){
return tx.getText();
}
}
class Swing_OnValueChanged implements DocumentListener
{
public void changedUpdate(DocumentEvent e){
System.out.printf("liyuan1" + e);
}
public void insertUpdate(DocumentEvent e){
JFrame1.printText();
}
public void removeUpdate(DocumentEvent e){
System.out.printf("liyuan3");
}
}
请教 在怎么上面的函数 public void insertUpdate(DocumentEvent e){
JFrame1.printText();
}
里面获得 申明 F 的引用 ? 我为获得引用 把 printText();申明为静态, 不是静态的怎么调用 ?
谢谢!
这种情况一般用内部类来声明Listener
匿名内部类实现监听器,或者为Swing_OnValueChanged写一个构造器,把引用通过构造器传入监听器。