Swing Components Java

/*
Code revised from Desktop Java Live:
http://www.sourcebeat.com/downloads/
*/
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;
public class ErrorDialogExample extends JPanel {
    JTextField nameField;
    JTextField siteField;
    JTextField feedField;
    Feed feed;
    public ErrorDialogExample() {
        DefaultFormBuilder formBuilder = new DefaultFormBuilder(new FormLayout(""));
        formBuilder.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
        formBuilder.appendColumn("right:pref");
        formBuilder.appendColumn("3dlu");
        formBuilder.appendColumn("fill:p:g");
        this.nameField = new JTextField();
        formBuilder.append("Name:", this.nameField);
        this.siteField = new JTextField();
        formBuilder.append("Site Url:", this.siteField);
        this.feedField = new JTextField();
        formBuilder.append("Feed Url:", this.feedField);
        formBuilder.append(new JButton(new ShowFeedInformationAction()), 3);
        createFeed();
        initializeFormElements();
        add(formBuilder.getPanel());
    }
    private void createFeed() {
        this.feed = new Feed();
        this.feed.setName("ClientJava.com");
        this.feed.setSiteUrl("http://www.clientjava.com/blog");
        this.feed.setFeedUrl("http://www.clientjava.com/blog/rss.xml");
    }
    private void initializeFormElements() {
        this.nameField.setText(this.feed.getName());
        this.siteField.setText(this.feed.getSiteUrl());
        this.feedField.setText(this.feed.getFeedUrl());
    }
    private void synchFormAndFeed() {
        this.feed.setName(this.nameField.getText());
        this.feed.setSiteUrl(this.siteField.getText());
        this.feed.setFeedUrl(this.feedField.getText());
    }
    private boolean validateFeed() {
        boolean valid = true;
        if (this.nameField.getText().trim().length() == 0) {
            JOptionPane.showMessageDialog(null, "Name must not be empty.", "Error", JOptionPane.ERROR_MESSAGE);
            valid = false;
        }
        if (this.siteField.getText().trim().length() == 0) {
            JOptionPane.showMessageDialog(null, "Site URL must not be empty.", "Error", JOptionPane.ERROR_MESSAGE);
            valid = false;
        }
        if (this.feedField.getText().trim().length() == 0) {
            JOptionPane.showMessageDialog(null, "Feed URL must not be empty.", "Error", JOptionPane.ERROR_MESSAGE);
            valid = false;
        }
        return valid;
    }
    private Feed getFeed() {
        return this.feed;
    }
    private class ShowFeedInformationAction extends AbstractAction {
        public ShowFeedInformationAction() {
            super("Show Feed Information");
        }
        public void actionPerformed(ActionEvent event) {
            if (validateFeed()) {
                synchFormAndFeed();
                StringBuffer message = new StringBuffer();
                message.append("");
                message.append("Name: ");
                message.append(getFeed().getName());
                message.append("
");
                message.append("Site URL: ");
                message.append(getFeed().getSiteUrl());
                message.append("
");
                message.append("Feed URL: ");
                message.append(getFeed().getFeedUrl());
                message.append("");
                JOptionPane.showMessageDialog(null, message.toString());
            }
        }
    }
    public static void main(String[] a){
      JFrame f = new JFrame("Error Dialog Example");
      f.setDefaultCloseOperation(2);
      f.add(new ErrorDialogExample());
      f.pack();
      f.setVisible(true);
    }
}
           
       
jgoodiesValidation.zip( 277 k)