Text fields and Java events : TextField « Swing JFC « Java






Text fields and Java events

Text fields and Java events
    

// : c14:TextFields.java
// Text fields and Java events.
// <applet code=TextFields width=375 height=125></applet>
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class TextFields extends JApplet {
  private JButton b1 = new JButton("Get Text"), b2 = new JButton("Set Text");

  private JTextField t1 = new JTextField(30), t2 = new JTextField(30),
      t3 = new JTextField(30);

  private String s = new String();

  private UpperCaseDocument ucd = new UpperCaseDocument();

  public void init() {
    t1.setDocument(ucd);
    ucd.addDocumentListener(new T1());
    b1.addActionListener(new B1());
    b2.addActionListener(new B2());
    DocumentListener dl = new T1();
    t1.addActionListener(new T1A());
    Container cp = getContentPane();
    cp.setLayout(new FlowLayout());
    cp.add(b1);
    cp.add(b2);
    cp.add(t1);
    cp.add(t2);
    cp.add(t3);
  }

  class T1 implements DocumentListener {
    public void changedUpdate(DocumentEvent e) {
    }

    public void insertUpdate(DocumentEvent e) {
      t2.setText(t1.getText());
      t3.setText("Text: " + t1.getText());
    }

    public void removeUpdate(DocumentEvent e) {
      t2.setText(t1.getText());
    }
  }

  class T1A implements ActionListener {
    private int count = 0;

    public void actionPerformed(ActionEvent e) {
      t3.setText("t1 Action Event " + count++);
    }
  }

  class B1 implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      if (t1.getSelectedText() == null)
        s = t1.getText();
      else
        s = t1.getSelectedText();
      t1.setEditable(true);
    }
  }

  class B2 implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      ucd.setUpperCase(false);
      t1.setText("Inserted by Button 2: " + s);
      ucd.setUpperCase(true);
      t1.setEditable(false);
    }
  }

  public static void main(String[] args) {
    run(new TextFields(), 375, 125);
  }
  public static void run(JApplet applet, int width, int height) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(applet);
    frame.setSize(width, height);
    applet.init();
    applet.start();
    frame.setVisible(true);
  }
  
}

class UpperCaseDocument extends PlainDocument {
  private boolean upperCase = true;

  public void setUpperCase(boolean flag) {
    upperCase = flag;
  }

  public void insertString(int offset, String str, AttributeSet attSet)
      throws BadLocationException {
    if (upperCase)
      str = str.toUpperCase();
    super.insertString(offset, str, attSet);
  }

} ///:~


           
         
    
    
    
  








Related examples in the same category

1.Make a Text Field two columns wide
2.Water mark text field
3.Auto complete TextField
4.JTextField Alignment SampleJTextField Alignment Sample
5.Create the textfieldCreate the textfield
6.FieldEdit - an Applet to validate data as it's being entered
7.Textfield only accepts numbersTextfield only accepts numbers
8.Overwritable TextFieldOverwritable TextField
9.Numeric TextFieldNumeric TextField
10.Passive TextField 1Passive TextField 1
11.Passive TextField 2Passive TextField 2
12.Text Accelerator ExampleText Accelerator Example
13.TextField Look Ahead ExampleTextField Look Ahead Example
14.Passive TextField 3Passive TextField 3
15.Non Wrapping(Wrap) TextPaneNon Wrapping(Wrap) TextPane
16.EditabilityExampleEditabilityExample
17.Bounded TextFieldBounded TextField
18.TextField ElementsTextField Elements
19.TextFieldViews 2TextFieldViews 2
20.TextField with ConstaintsTextField with Constaints
21.JTextField Sample 2JTextField Sample 2
22.JTextField Verifier SampleJTextField Verifier Sample
23.A simple label for field form panelA simple label for field form panel
24.A hack to make a JTextField really 2 columns wideA hack to make a JTextField really 2 columns wide
25.Limit JTextField input to a maximum length
26.Make sure that my JTextField has the focus when a JFrame is created
27.Make the ENTER key act like the TAB key
28.Setting up a textfield and modifying its horizontal alignment at runtimeSetting up a textfield and modifying its horizontal alignment at runtime
29.Aligning the Text in a JTextField Component
30.Based on JTextField content, enable or disable a JButton
31.Cut, paste, and copy in a JTextField under program control.
32.Add key listener event handler to JTextField
33.Right justified JTextfield content
34.Set the focus on a particular JTextField
35.Associate JLabel component with a JTextField
36.Right justified JTextField contents
37.Validate a value on the lostFocus event
38.Modify horizontal alignment of text field at runtime
39.Make sure that my Text field has the focus when a JFrame is created
40.Firing Item Events
41.extends JTextField to create integer JTextField
42.JTextField Max Length
43.Demo for three types of text component: JTextField, JPasswordField, JTextArea