📄 setupdialog.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 + -