- How to implement documentlistener
- import java.awt.ComponentOrientation;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JCheckBox;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.JTextField;
- import javax.swing.event.DocumentEvent;
- import javax.swing.event.DocumentListener;
- public class Display {
- final static boolean shouldFill = true;
- final static boolean shouldWeightX = true;
- final static boolean RIGHT_TO_LEFT = false;
- public static void addComponentsToPane(Container pane) {
- if (RIGHT_TO_LEFT) {
- pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
- }
- JButton button;
- JLabel label;
- pane.setLayout(new GridBagLayout());
- GridBagConstraints c = new GridBagConstraints();
- if (shouldFill) {
- //natural height, maximum width
- c.fill = GridBagConstraints.HORIZONTAL;
- }
- if (shouldWeightX) {
- c.weightx = 0.5;
- }
- ...
- button = new JButton("Value Bet");
- c.fill = GridBagConstraints.HORIZONTAL;
- c.ipady = 0;
- c.gridx = 0;
- c.gridy = 1;
- pane.add(button, c);
- button.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- //Execute when button is pressed
- JFrame frame = new JFrame("Value Bet");
- frame.setVisible(true);
- frame.setSize(500,300);
- GridBagLayout layout = new GridBagLayout();
- frame.setLayout(layout);
- GridBagConstraints c = new GridBagConstraints();
- JLabel label;
- JTextField tf;
- if (shouldFill) {
- //natural height, maximum width
- c.fill = GridBagConstraints.HORIZONTAL;
- }
- if (shouldWeightX) {
- c.weightx = 0.5;
- }
- ...
- final JTextField tf1 = new JTextField();
- c.fill = GridBagConstraints.HORIZONTAL;
- c.gridx = 1;
- c.gridy = 2;
- frame.add(tf1, c);
- tf1.getDocument().addDocumentListener(new DocHandler(){
- public class DocHandler implements DocumentListener{
- @Override
- public void changedUpdate(DocumentEvent arg0) {
- tfHasChanged();
- }
- @Override
- public void insertUpdate(DocumentEvent arg0) {
- tfHasChanged();
- }
- @Override
- public void removeUpdate(DocumentEvent arg0) {
- tfHasChanged();
- }
- }
- public void tfHasChanged(){
- double chance1 = Double.parseDouble(tf1.getText());
- }
- });
- ... div components
- }
- private static void createAndShowGUI() {
- //Create and set up the window.
- JFrame frame = new JFrame("Betting Application");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //Set up the content pane.
- addComponentsToPane(frame.getContentPane());
- //Display the window.
- frame.pack();
- frame.setVisible(true);
- }
- public static void main(String[] args) {
- //Schedule a job for the event-dispatching thread:
- //creating and showing this application's GUI.
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- createAndShowGUI();
- }
- });
- }
- }
- formatter.setMinimum(0.0);
- formatter.setMaximum(1000.00);
- import java.awt.*;
- import java.awt.font.TextAttribute;
- import java.math.*;
- import java.text.*;
- import java.util.Map;
- import javax.swing.*;
- import javax.swing.JFormattedTextField.*;
- import javax.swing.event.*;
- import javax.swing.text.InternationalFormatter;
- public class DocumentListenerAdapter {
- public static void main(String args[]) {
- JFrame frame = new JFrame("AbstractTextField Test");
- final JFormattedTextField textField1 = new JFormattedTextField(new Float(10.01));
- textField1.setFormatterFactory(new AbstractFormatterFactory() {
- @Override
- public AbstractFormatter getFormatter(JFormattedTextField tf) {
- NumberFormat format = DecimalFormat.getInstance();
- format.setMinimumFractionDigits(2);
- format.setMaximumFractionDigits(2);
- format.setRoundingMode(RoundingMode.HALF_UP);
- InternationalFormatter formatter = new InternationalFormatter(format);
- formatter.setAllowsInvalid(false);
- formatter.setMinimum(0.0);
- formatter.setMaximum(1000.00);
- return formatter;
- }
- });
- final Map attributes = (new Font("Serif", Font.BOLD, 16)).getAttributes();
- attributes.put(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON);
- final JFormattedTextField textField2 = new JFormattedTextField(new Float(10.01));
- textField2.setFormatterFactory(new AbstractFormatterFactory() {
- @Override
- public AbstractFormatter getFormatter(JFormattedTextField tf) {
- NumberFormat format = DecimalFormat.getInstance();
- format.setMinimumFractionDigits(2);
- format.setMaximumFractionDigits(2);
- format.setRoundingMode(RoundingMode.HALF_UP);
- InternationalFormatter formatter = new InternationalFormatter(format);
- formatter.setAllowsInvalid(false);
- //formatter.setMinimum(0.0);
- //formatter.setMaximum(1000.00);
- return formatter;
- }
- });
- textField2.getDocument().addDocumentListener(new DocumentListener() {
- @Override
- public void changedUpdate(DocumentEvent documentEvent) {
- printIt(documentEvent);
- }
- @Override
- public void insertUpdate(DocumentEvent documentEvent) {
- printIt(documentEvent);
- }
- @Override
- public void removeUpdate(DocumentEvent documentEvent) {
- printIt(documentEvent);
- }
- private void printIt(DocumentEvent documentEvent) {
- DocumentEvent.EventType type = documentEvent.getType();
- double t1a1 = (((Number) textField2.getValue()).doubleValue());
- if (t1a1 > 1000) {
- Runnable doRun = new Runnable() {
- @Override
- public void run() {
- textField2.setFont(new Font(attributes));
- textField2.setForeground(Color.red);
- }
- };
- SwingUtilities.invokeLater(doRun);
- } else {
- Runnable doRun = new Runnable() {
- @Override
- public void run() {
- textField2.setFont(new Font("Serif", Font.BOLD, 16));
- textField2.setForeground(Color.black);
- }
- };
- SwingUtilities.invokeLater(doRun);
- }
- }
- });
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.add(textField1, BorderLayout.NORTH);
- frame.add(textField2, BorderLayout.SOUTH);
- frame.setVisible(true);
- frame.pack();
- }
- private DocumentListenerAdapter() {
- }
- }
- tf1.getDocument().addDocumentListener(new DocumentListener() {
- @Override
- public void changedUpdate(DocumentEvent e){
- //do some math
- tf1.getText();
- }
- @Override
- public void insertUpdate(DocumentEvent e) {
- /do some math
- tf1.getText();
- }
- @Override
- public void removeUpdate(DocumentEvent e) {
- // TODO Auto-generated method stub
- }
- });