/*
Core SWING Advanced Programming
By Kim Topley
ISBN: 0 13 083292 8
Publisher: Prentice Hall
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.text.Document;
public class PassiveTextField extends JTextField {
public PassiveTextField() {
this(null, null, 0);
}
public PassiveTextField(String text) {
this(null, text, 0);
}
public PassiveTextField(int columns) {
this(null, null, columns);
}
public PassiveTextField(String text, int columns) {
this(null, text, columns);
}
public PassiveTextField(Document doc, String text, int columns) {
super(doc, text, columns);
}
public void processComponentKeyEvent(KeyEvent evt) {
switch (evt.getID()) {
case KeyEvent.KEY_PRESSED:
case KeyEvent.KEY_RELEASED:
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
return;
}
break;
case KeyEvent.KEY_TYPED:
if (evt.getKeyChar() == '\r') {
return;
}
break;
}
super.processComponentKeyEvent(evt);
}
// Test method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception evt) {}
JFrame f = new JFrame("Passive Text Field");
f.getContentPane().setLayout(
new BoxLayout(f.getContentPane(), BoxLayout.Y_AXIS));
final PassiveTextField ptf = new PassiveTextField(32);
JTextField tf = new JTextField(32);
JPanel p = new JPanel();
JButton b = new JButton("OK");
p.add(b);
f.getContentPane().add(ptf);
f.getContentPane().add(tf);
f.getContentPane().add(p);
ActionListener l = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("Action event from a text field");
}
};
ptf.addActionListener(l);
tf.addActionListener(l);
// Make the button the default button
f.getRootPane().setDefaultButton(b);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("Content of text field: <" + ptf.getText()
+ ">");
}
});
f.pack();
f.setVisible(true);
}
}
|