package org.crazyit.editor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import org.crazyit.editor.commons.AddInfo; /** * 添加界面 * * @author yangenxiong yangenxiong2009@gmail.com * @version 1.0 *
网站: 疯狂Java联盟 *
Copyright (C), 2009-2010, yangenxiong *
This program is protected by copyright laws. */ public class AddFrame extends JFrame { //该Frame的JPanel private JPanel mainPanel; //项目名称 private JPanel namePanel; //显示文件的JLabel private JLabel nameLabel; //输入名称的JTextField private JTextField nameText; //放按钮的Panel private JPanel buttonPanel; //确定按钮 private JButton confirmButton; //取消按钮 private JButton cancelButton; public AddFrame(final AddInfo info) { mainPanel = new JPanel(); namePanel = new JPanel(); //设置nameLabel的文字 nameLabel = new JLabel(info.getInfo()); nameText = new JTextField("", 20); buttonPanel = new JPanel(); confirmButton = new JButton("确定"); cancelButton = new JButton("取消"); mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS)); addWindowListener(new WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { cancel(info); } }); setLocation(200, 200); setResizable(false); //文本框前面的字 namePanel.setLayout(new BoxLayout(namePanel, BoxLayout.X_AXIS)); namePanel.add(nameLabel); namePanel.add(nameText); nameText.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { //判断项目路径与名称是否有值, 如果两个text field都有值, 则确定按钮可用 if (nameText.getText().equals("")) { confirmButton.setEnabled(false); } else { confirmButton.setEnabled(true); } } }); //确定和取消的按钮 buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); confirmButton.setEnabled(false); buttonPanel.add(confirmButton); buttonPanel.add(new JLabel(" ")); buttonPanel.add(cancelButton); //为取消按钮添加监听器 cancelButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { cancel(info); } }); //为确定按钮添加监听器 confirmButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //如果输入框没有值,返回 if (nameText.getText() == "") return; handerConfirm(info); } }); mainPanel.add(namePanel); mainPanel.add(buttonPanel); add(mainPanel); pack(); } //处理确定按钮的点击 private void handerConfirm(AddInfo info) { //获取得用户输入 String data = nameText.getText(); //新增后会涉及的一些与业务相关的操作留给Handler类处理 info.getHandler().afterAdd(info.getEditorFrame(), this, data); } private void cancel(AddInfo info) { //设置EditorFrame可用 info.getEditorFrame().setEnabled(true); //让本窗口不可见 setVisible(false); } }