⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setupdialog.java

📁 使用Java Swing开发的一个自动生成POJO的软件,能够生成Appfuse框架需要的带有XDoclet代码的POJO.
💻 JAVA
字号:
package org.eclipse.ve.model;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.*;
import javax.swing.border.Border;

/**
 * <p>Title: 属性对话框界面</p>
 * <p>Description: 创建属性对话框界面,用户用此输入属性和配置</p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: www.use.com</p>
 * @author jiangyujie
 * @version 1.0
 */

public class SetupDialog extends JDialog implements ActionListener{

	/**
	 * 
	 */
	private static final long serialVersionUID = -5595007106944699162L;

	static Color DarkColor = new Color(55, 77, 118); // 暗色

	static Border unSelected = BorderFactory.createLineBorder(DarkColor, 1); // 未选中时的边框
	static BorderLayout borderLayout1 = new BorderLayout();

	static JPanel jContentPane;
	static JLabel jLabelName = new JLabel();
	static JLabel jLabelType = new JLabel();
	static JLabel jLabelLength = new JLabel();
	static JLabel jLabelNotNull = new JLabel();
	static JLabel jLabelForKey = new JLabel();
	static JLabel jLabelUni = new JLabel();

	static JLabel jlNameVali = new JLabel();
	static JLabel jlLengVali = new JLabel();

	static TextField jTextFieldObject = new TextField();
	static TextField jTextFieldLength = new TextField();;

	static JButton jButtonSure = new JButton();
	static JButton jButtonExit = new JButton();

	static Choice choiceType = new Choice();

	static JCheckBox choiceNotNull = new JCheckBox();;
	static JCheckBox choiceUni = new JCheckBox();;

	static List forList = new List();
	
	static int editFlag = 0;
	static int index = 0;

	public SetupDialog(JFrame frame) {
		super(frame, true);
		try {
			jbInit();
		} catch (Exception e) {
			e.printStackTrace();
		}
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		this.setLocation((int) (screenSize.width - 416) / 2,
				(int) (screenSize.height - 310) / 2);
		this.setResizable(false);
		SetupDialog.setDefaultLookAndFeelDecorated(true);
		
		Auto.setMouse(this);
	}

	private void jbInit() throws Exception {
		this.setTitle("设置属性");
		this.setSize(new Dimension(416, 310));
		this.setContentPane(getJContentPane());
		this.setResizable(false);
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

		jContentPane.setMinimumSize(new Dimension(260, 28));
		jContentPane.setPreferredSize(new Dimension(260, 28));
		jContentPane.setLayout(borderLayout1);
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabelForKey.setBounds(new java.awt.Rectangle(40, 170, 50, 27));
			jLabelForKey.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, 14));
			jLabelForKey.setText("外键");
			jLabelForKey.setForeground(java.awt.Color.white);

			jLabelNotNull.setBounds(new java.awt.Rectangle(40, 130, 70, 27));
			jLabelNotNull.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD,
					14));
			jLabelNotNull.setText("不为空");
			jLabelNotNull.setForeground(java.awt.Color.white);

			jLabelUni.setBounds(new java.awt.Rectangle(210, 130, 70, 27));
			jLabelUni.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, 14));
			jLabelUni.setText("唯一");
			jLabelUni.setForeground(java.awt.Color.white);

			jLabelLength.setBounds(new java.awt.Rectangle(40, 90, 50, 27));
			jLabelLength.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, 14));
			jLabelLength.setText("长度");
			jLabelLength.setForeground(java.awt.Color.white);

			jLabelType.setBounds(new java.awt.Rectangle(40, 50, 50, 27));
			jLabelType.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, 14));
			jLabelType.setText("类型");
			jLabelType.setForeground(java.awt.Color.white);

			jLabelName.setBounds(new java.awt.Rectangle(40, 10, 50, 27));
			jLabelName.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, 14));
			jLabelName.setText("名称");
			jLabelName.setForeground(java.awt.Color.white);
			
			jTextFieldObject.setBounds(new java.awt.Rectangle(160, 10, 66, 20));
			jTextFieldObject.setFont(new Font("Dialog",Font.PLAIN,14));
			
			jTextFieldLength.setBounds(new java.awt.Rectangle(160, 90, 66, 20));
			jTextFieldLength.setFont(new Font("Dialog",Font.PLAIN,14));
			
			choiceType.setBounds(new java.awt.Rectangle(160, 50, 68, 24));
			choiceType.setFont(new Font("Dialog",Font.PLAIN,14));
			choiceType.add("String");
			choiceType.add("Integer");
			choiceType.add("Float");
			choiceType.add("Date");
			choiceType.add("Boolean");
			choiceType.add("Timestamp");
			
			choiceNotNull.setBounds(new java.awt.Rectangle(110, 135, 20, 15));
			choiceNotNull.setBackground(new java.awt.Color(76, 146, 196));
			
			choiceUni.setBounds(new java.awt.Rectangle(260, 135, 20, 15));
			choiceUni.setBackground(new java.awt.Color(76, 146, 196));
			
			jButtonSure.setBounds(new java.awt.Rectangle(120, 240, 60, 25));
			jButtonSure.setText("确定");
			jButtonSure.setIcon(Auto.sure);
			jButtonSure.addActionListener(this);
			jButtonSure.setBorder(unSelected);
			
			jButtonExit.setBounds(new java.awt.Rectangle(220, 240, 60, 25));
			jButtonExit.setText("退出");
			jButtonExit.setIcon(Auto.exit);
			jButtonExit.addActionListener(this);
			jButtonExit.setBorder(unSelected);

			jContentPane = new Content(Auto.setupDialogBack);
			jContentPane.add(jLabelName, null);
			jContentPane.add(jLabelType, null);
			jContentPane.add(jLabelLength, null);
			jContentPane.add(jLabelNotNull, null);
			jContentPane.add(jLabelForKey, null);
			jContentPane.add(jLabelUni, null);
			jContentPane.add(jTextFieldObject);
			jContentPane.add(choiceType);
			jContentPane.add(jTextFieldLength);

			forList.setBounds(new java.awt.Rectangle(147, 165, 100, 60));
			jContentPane.add(forList);

			jlNameVali.setBounds(240, 10, 200, 20);
			jContentPane.add(jlNameVali);

			jlLengVali.setBounds(240, 90, 200, 20);
			jContentPane.add(jlLengVali);
			
			jContentPane.add(jButtonSure);
			jContentPane.add(jButtonExit);
			jContentPane.add(choiceNotNull);
			jContentPane.add(choiceUni);
		
		}
		return jContentPane;
	}


	public void actionPerformed(ActionEvent e) {
		Object obj = e.getSource();

		if (obj == jButtonSure) {

			int flagName = 0;// 名称是否符合英文的标志
			int flagLength = 0;// 长度是否符合数字的标志
			if (Auto.listProperty.getSelectedIndex() >= 0)
				index = Auto.listProperty.getSelectedIndex();

			// 给数组赋值,把设置的参数存入
			String object = jTextFieldObject.getText();
			String length = jTextFieldLength.getText();
			String forKey = forList.getSelectedItem();
			
			ArrayList proper = new ArrayList();
			proper.add(jTextFieldObject.getText());
			proper.add(choiceType.getSelectedItem());
			proper.add(jTextFieldLength.getText());
			proper.add(forList.getSelectedItem());
			proper.add(Boolean.toString(choiceNotNull.isSelected()));
			proper.add(Boolean.toString(choiceUni.isSelected()));
			proper.add(Integer.toString(forList.getSelectedIndex()));

			// 验证name是否为英文字母和数字
			for (int i = 0; i < object.length(); i++) {
				if ((65 <= object.charAt(i) && jTextFieldObject.getText()
						.charAt(i) <= 90)
						|| (97 <= object.charAt(i) && object.charAt(i) <= 122)
						|| (48 <= object.charAt(i) && object.charAt(i) <= 57))
					continue;
				else
					flagName = 1;
			}
			// 验证name是否合法
			if (object.equals("parent") == true || object.equals("id") == true)
				flagName = 2;

			// 验证length是否为数字
			for (int i = 0; i < length.length(); i++) {
				if (48 <= length.charAt(i)
						&& length.charAt(i) <= 57)
					continue;
				else
					flagLength = 1;
			}
			
			// 验证length首字母是否为0
			if(length.equals("") == false ){
				if(length.charAt(0) == 48)
					flagLength = 2;
			}

			//先验证length和object的合法性,验证length必须在外键没有选择的情况下
			if (flagName == 1) {
				jlNameVali.setText("名称必须为英文字母或数字!");
			} else if (flagName == 2) {
				jlNameVali.setText("名称不能为" + object + "!");
			} else if (flagLength == 1
					&& forKey.equals("没有外键") == true) {
				jlLengVali.setText("长度必须为数字!");
			} else if(flagLength == 2
					&& forKey.equals("没有外键") == true) {
				jlLengVali.setText("长度第一个数字不能为0!");
			}
			else {// 验证列表里面有没有当前name,没有的话,设置y=0
				int l = Auto.listProperty.getItemCount();
				int y = 0;

				for (int i = 0; i < l; i++) {
					if (Auto.listProperty.getItem(i).equals(object) != true)
						continue;
					else {
						if (editFlag == 1
								&& i != Auto.listProperty.getSelectedIndex())
							y = 2;
						else
							y = 1;
					}
				}

				// 如果属性列表为空,而且属性name已经设置,添加name到列表里面
				if (object.equals("") == false) {
					if (editFlag == 0) {// 不是编辑状态的时候
						if (y == 1) {// 如果属性名已存在
							Auto.actionPanel.setForeground(Color.RED);
							Auto.actionPanel.setText("属性名重复");
							jlNameVali.setText("属性已存在");
						} else {// 属性名不存在
							Auto.listProperty.add(object);
							Auto.proList.add(proper);
							Auto.listProperty.select(Auto.proList.size()-1);
							this.dispose();
							choiceType.select(0);
							Auto.jbAdd.setBorder(unSelected);
						}
					} else {
						if (y != 2) {// 如果是编辑状态且属性名不重复
							Auto.proList.set(index, proper);
							Auto.listProperty.replaceItem(object,index);
							Auto.listProperty.select(index);
							this.dispose();
							choiceType.select(0);
							Auto.jbAdd.setBorder(unSelected);
							editFlag = 0;
						} else {
							Auto.actionPanel.setForeground(Color.RED);
							Auto.actionPanel.setText("属性名重复");
							jlNameVali.setText("属性已存在");
						}
					}
				} else {
					jlNameVali.setText("未设置属性名");

				}
			}
		}

		else if (obj == jButtonExit) {
			this.dispose();
			editFlag = 0;
			choiceType.select(0);
			Auto.jbAdd.setBorder(unSelected);
		}
	}
	
	public static void setup()
	{
		jlLengVali.setText("");
		jlNameVali.setText("");
		jTextFieldObject.setText("");
		choiceType.select(0);
		jTextFieldLength.setText("");
		choiceNotNull.setSelected(false);
		choiceUni.setSelected(false);
	}
	
	public void edit() {
		jlLengVali.setText("");
		jlNameVali.setText("");

		int index = Auto.listProperty.getSelectedIndex();
		ArrayList edit = (ArrayList) Auto.proList.get(index);

		if (edit.get(3).toString().equals("没有外键") == true) {
			jTextFieldObject.setText(edit.get(0).toString());
			choiceType.select(edit.get(1).toString());
			jTextFieldLength.setText(edit.get(2).toString());
			choiceNotNull.setSelected(Boolean.parseBoolean(edit.get(4).toString()));
			choiceUni.setSelected(Boolean.parseBoolean(edit.get(5).toString()));
		} else {
			jTextFieldObject.setText(edit.get(0).toString());
			forList.select(Integer.parseInt(edit.get(6).toString()));
			choiceType.select(0);
			jTextFieldLength.setText("");
			choiceNotNull.setSelected(false);
			choiceUni.setSelected(false);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -