VE(virtual edit)可视化编辑
Matisse Form使用:
一 :new 界面
1)new – Matisse Form(如果没有,用2))
2)new–Other–MyElipese–Swing– Matisse Form
二:必须有一个内容窗格(Application),往内容窗格内加面板(JPanel)
三:对面板格式的设置
1)点右键,会有设布局,一般选null空布局,在Add Form Palate–SwingControls会有添加各种组件,选中某一组件点右键可对组件进行(重命名,设文本,大小,添加监听等)操作
2)在Windows菜单中-show view–Matisse Palate–SwingControls可添加各种Swing组件
show view–Properties选中组件或者界面,在Properties中即可对其进行设置
四:组件可以被复制。注:原来的组件在上面,复制之后的组件在下面,使用组件的时候要把组件换一下
在内容窗格上添加listPanel(第一次运行),之后根据功能需要显示不同的面板,所以要把内容窗格this传给listPanel,并且每次换功能面板都要拿this
package cn.hncu.addr;
import cn.hncu.addr.ui.listPanel;
public class AddressApp extends javax.swing.JFrame {
/** Creates new form AddressApp */
public AddressApp() {
this.setContentPane(new listPanel(this));//把this传给listPanel
this.validate();//相当于刷新界面
initComponents();//WARNING: Do NOT modify this code.The content of this method is always regenerated by the Form Editor.这里的代码不能修改,因为他每次都会根据Form Editor重新生成
}
/** This method is called from within the constructor to
* initialize the form.
* ***WARNING:*** Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
menuBar = new javax.swing.JMenuBar();
fileMenu = new javax.swing.JMenu();
openMenuItem = new javax.swing.JMenuItem();
saveMenuItem = new javax.swing.JMenuItem();
saveAsMenuItem = new javax.swing.JMenuItem();
exitMenuItem = new javax.swing.JMenuItem();
editMenu = new javax.swing.JMenu();
cutMenuItem = new javax.swing.JMenuItem();
copyMenuItem = new javax.swing.JMenuItem();
pasteMenuItem = new javax.swing.JMenuItem();
deleteMenuItem = new javax.swing.JMenuItem();
helpMenu = new javax.swing.JMenu();
contentsMenuItem = new javax.swing.JMenuItem();
aboutMenuItem = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(800, 600));
getContentPane().setLayout(null);
fileMenu.setText("File");
openMenuItem.setText("Open");
fileMenu.add(openMenuItem);
saveMenuItem.setText("Save");
fileMenu.add(saveMenuItem);
saveAsMenuItem.setText("Save As ...");
fileMenu.add(saveAsMenuItem);
exitMenuItem.setText("Exit");
exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exitMenuItemActionPerformed(evt);
}
});
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
editMenu.setText("Edit");
cutMenuItem.setText("Cut");
editMenu.add(cutMenuItem);
copyMenuItem.setText("Copy");
editMenu.add(copyMenuItem);
pasteMenuItem.setText("Paste");
editMenu.add(pasteMenuItem);
deleteMenuItem.setText("Delete");
editMenu.add(deleteMenuItem);
menuBar.add(editMenu);
helpMenu.setText("Help");
contentsMenuItem.setText("Contents");
helpMenu.add(contentsMenuItem);
aboutMenuItem.setText("About");
helpMenu.add(aboutMenuItem);
menuBar.add(helpMenu);
setJMenuBar(menuBar);
pack();
}// </editor-fold>
//GEN-END:initComponents
private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
//GEN-FIRST:event_exitMenuItemActionPerformed
System.exit(0);
}//GEN-LAST:event_exitMenuItemActionPerformed
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new AddressApp().setVisible(true);
}
});
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JMenuItem aboutMenuItem;
private javax.swing.JMenuItem contentsMenuItem;
private javax.swing.JMenuItem copyMenuItem;
private javax.swing.JMenuItem cutMenuItem;
private javax.swing.JMenuItem deleteMenuItem;
private javax.swing.JMenu editMenu;
private javax.swing.JMenuItem exitMenuItem;
private javax.swing.JMenu fileMenu;
private javax.swing.JMenu helpMenu;
private javax.swing.JMenuBar menuBar;
private javax.swing.JMenuItem openMenuItem;
private javax.swing.JMenuItem pasteMenuItem;
private javax.swing.JMenuItem saveAsMenuItem;
private javax.swing.JMenuItem saveMenuItem;
// End of variables declaration//GEN-END:variables
}
在面板添加list(显示每次操作的结果)
下面的各个按钮是选择功能块
package cn.hncu.addr.ui;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import cn.hncu.addr.business.AddrBusiness;
public class listPanel extends javax.swing.JPanel {
private static final long serialVersionUID = 1L;//序列化
private JFrame mainFrame = null;
/** Creates new form listPanel */
public listPanel(JFrame mainFrame) {
this.mainFrame = mainFrame;
initComponents();
myInitDate();
}
public listPanel(JFrame mainFrame, Object[] res) {
this.mainFrame=mainFrame;
initComponents();//对list初始化,如果存有数据则显示,否则不显示任何
jListAddress.setListData(res);
}
private void myInitDate() {
AddrBusiness aB = new AddrBusiness();
Object obj[] = aB.getAll();
jListAddress.setListData(obj);
}
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel5 = new javax.swing.JLabel();
btnToAdd = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jListAddress = new javax.swing.JList();
btnToUpdate = new javax.swing.JButton();
btnToQuery = new javax.swing.JButton();
btnToDelete = new javax.swing.JButton();
setBackground(new java.awt.Color(102, 255, 102));
setMinimumSize(new java.awt.Dimension(800, 600));
setLayout(null);
jLabel5.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 48));
jLabel5.setForeground(new java.awt.Color(255, 0, 51));
jLabel5.setText("\u6211\u7684\u5730\u5740\u672c");
add(jLabel5);
jLabel5.setBounds(250, 60, 250, 60);
btnToAdd.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24));
btnToAdd.setText("\u8f6c\u5230\u6dfb\u52a0");
btnToAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnToAddActionPerformed(evt);
}
});
add(btnToAdd);
btnToAdd.setBounds(50, 460, 130, 40);
jListAddress.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 18));
jListAddress.setForeground(new java.awt.Color(0, 153, 102));
jListAddress.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "" };
public int getSize() {
return strings.length;
}
public Object getElementAt(int i) {
return strings[i];
}
});
jScrollPane1.setViewportView(jListAddress);
add(jScrollPane1);
jScrollPane1.setBounds(160, 140, 480, 280);
btnToUpdate.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24));
btnToUpdate.setText("\u8f6c\u5230\u4fee\u6539");
btnToUpdate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnToUpdateActionPerformed(evt);
}
});
add(btnToUpdate);
btnToUpdate.setBounds(440, 460, 130, 40);
btnToQuery.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24));
btnToQuery.setText("\u8f6c\u5230\u67e5\u8be2");
btnToQuery.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnToQueryActionPerformed(evt);
}
});
add(btnToQuery);
btnToQuery.setBounds(620, 460, 130, 40);
btnToDelete.setFont(new java.awt.Font("Microsoft YaHei UI", 1, 24));
btnToDelete.setText("\u8f6c\u5230\u5220\u9664");
btnToDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnToDeleteActionPerformed(evt);
}
});
add(btnToDelete);
btnToDelete.setBounds(240, 460, 130, 40);
}// </editor-fold>
//GEN-END:initComponents
private void btnToDeleteActionPerformed(java.awt.event.ActionEvent evt) {
//选择删除功能
String str=(String) jListAddress.getSelectedValue();
if(str==null){
JOptionPane.showMessageDialog(this, "请选择需要删除的数据。");
return;
}
mainFrame.setContentPane(new DeletePanel(mainFrame,str));
mainFrame.validate();
}
private void btnToQueryActionPerformed(java.awt.event.ActionEvent evt) {
//选择查询功能
mainFrame.setContentPane(new QueryPanel(mainFrame));
mainFrame.validate();
}
private void btnToUpdateActionPerformed(java.awt.event.ActionEvent evt) {
//选择修改功能
String str=(String) jListAddress.getSelectedValue();
if(str==null){
JOptionPane.showMessageDialog(this, "请选择需要修改的数据。");
return;
}
mainFrame.setContentPane(new UpdatePanel(mainFrame,str));
mainFrame.validate();
}
private void btnToAddActionPerformed(java.awt.event.ActionEvent evt) {
//选择添加功能
mainFrame.setContentPane(new AddPanel(mainFrame));
mainFrame.validate();
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton btnToAdd;
private javax.swing.JButton btnToDelete;
private javax.swing.JButton btnToQuery;
private javax.swing.JButton btnToUpdate;
private javax.swing.JLabel jLabel5;
private javax.swing.JList jListAddress;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration//GEN-END:variables
}
这一块和逻辑层有关。对信息进行增删改查
package cn.hncu.addr.ui;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import cn.hncu.addr.business.AddrBusiness;
public class AddPanel extends javax.swing.JPanel {
private JFrame mainFrame = null;
/** Creates new form AddPanel */
public AddPanel(JFrame mainFrame) {
this.mainFrame = mainFrame;
initComponents();
}
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
tfdName = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
tfdAge = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
tfdTel = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();