OnJava8-Examples/gui/TextFields.java

90 lines
2.3 KiB
Java
Raw Normal View History

2015-04-20 15:36:01 -07:00
//: gui/TextFields.java
// Text fields and Java events.
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
import static net.mindview.util.SwingConsole.*;
public class TextFields extends JFrame {
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 = "";
private UpperCaseDocument ucd = new UpperCaseDocument();
public TextFields() {
t1.setDocument(ucd);
ucd.addDocumentListener(new T1());
b1.addActionListener(new B1());
b2.addActionListener(new B2());
t1.addActionListener(new T1A());
setLayout(new FlowLayout());
add(b1);
add(b2);
add(t1);
add(t2);
add(t3);
}
class T1 implements DocumentListener {
2015-05-05 11:20:13 -07:00
@Override
2015-04-20 15:36:01 -07:00
public void changedUpdate(DocumentEvent e) {}
2015-05-05 11:20:13 -07:00
@Override
2015-04-20 15:36:01 -07:00
public void insertUpdate(DocumentEvent e) {
t2.setText(t1.getText());
t3.setText("Text: "+ t1.getText());
}
2015-05-05 11:20:13 -07:00
@Override
2015-04-20 15:36:01 -07:00
public void removeUpdate(DocumentEvent e) {
t2.setText(t1.getText());
}
}
class T1A implements ActionListener {
private int count = 0;
2015-05-05 11:20:13 -07:00
@Override
2015-04-20 15:36:01 -07:00
public void actionPerformed(ActionEvent e) {
t3.setText("t1 Action Event " + count++);
}
}
class B1 implements ActionListener {
2015-05-05 11:20:13 -07:00
@Override
2015-04-20 15:36:01 -07:00
public void actionPerformed(ActionEvent e) {
if(t1.getSelectedText() == null)
s = t1.getText();
else
s = t1.getSelectedText();
t1.setEditable(true);
}
}
class B2 implements ActionListener {
2015-05-05 11:20:13 -07:00
@Override
2015-04-20 15:36:01 -07:00
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, 200);
}
}
class UpperCaseDocument extends PlainDocument {
private boolean upperCase = true;
public void setUpperCase(boolean flag) {
upperCase = flag;
}
2015-05-05 11:20:13 -07:00
@Override
2015-04-20 15:36:01 -07:00
public void
insertString(int offset, String str, AttributeSet attSet)
throws BadLocationException {
if(upperCase) str = str.toUpperCase();
super.insertString(offset, str, attSet);
}
} ///:~