设计主窗口和内置窗口,完成点击菜单显示内置窗口。因为所有的窗口几乎都是一个套路完成的,大同小异,主要说明一个窗口的实现方法。
一. 用户主窗口:(JFrame)
二. 代码(包括了菜单的所有点击事件)
package cn.View.User;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import cn.Util.DateUtill;
import java.awt.Toolkit;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JMenu;
import java.awt.Font;
import javax.swing.UIManager;
import javax.swing.ImageIcon;
import javax.swing.JDesktopPane;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
public class MainFrm extends JFrame {
private JPanel contentPane;
public static JDesktopPane desktopPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrm frame = new MainFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MainFrm() {
setIconImage(Toolkit.getDefaultToolkit().getImage(MainFrm.class.getResource("/Image/th_whattasksma9.png")));
setTitle("\u7BA1\u7406\u754C\u9762(\u64CD\u4F5C\u8005) "+LoginFrm.userlevel+" "+LoginFrm.username+" 登陆时间: "+DateUtill.nowtime()+" "+DateUtill.nowdate());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 2586, 1421);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu menu = new JMenu("\u7BA1\u7406\u8D44\u6599");
menu.setIcon(new ImageIcon(MainFrm.class.getResource("/Image/1245O0NQc20-4T61T.gif")));
menu.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menuBar.add(menu);
JMenuItem menuItem = new JMenuItem("\u6211\u7684\u4FE1\u606F");//我的信息事件
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
closemainfrm(userupdate_JInternal.close);
UserInfoJInternal uifi=new UserInfoJInternal();
uifi.setVisible(true);
desktopPane.add(uifi);
}
});
menuItem.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menu.add(menuItem);
JMenu mnNewMenu = new JMenu("\u51FA\u5165\u60C5\u51B5");
mnNewMenu.setIcon(new ImageIcon(MainFrm.class.getResource("/Image/1245O0NMU50-4R4107.gif")));
mnNewMenu.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menuBar.add(mnNewMenu);
JMenuItem menuItem_1 = new JMenuItem("\u7269\u54C1\u51FA\u5165");
menuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GoodsOutJInternal goi=new GoodsOutJInternal();
goi.setVisible(true);
desktopPane.add(goi);
}
});
menuItem_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
mnNewMenu.add(menuItem_1);
JMenu menu_2 = new JMenu("\u6765\u8BBF\u4EBA\u51FA\u5165");
menu_2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
mnNewMenu.add(menu_2);
JMenuItem menuItem_2 = new JMenuItem("\u6765\u8BBF\u767B\u8BB0");
menuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
StuVsitInforFInernal svuf=new StuVsitInforFInernal();
svuf.setVisible(true);
desktopPane.add(svuf);
}
});
menuItem_2.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menu_2.add(menuItem_2);
JMenuItem menuItem_5 = new JMenuItem("\u7ED3\u675F\u6765\u8BBF");
menuItem_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
StuEndVisFInternal sevi=new StuEndVisFInternal();
sevi.setVisible(true);
desktopPane.add(sevi);
}
});
menuItem_5.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menu_2.add(menuItem_5);
JMenu mnNewMenu_1 = new JMenu("\u67E5\u8BE2\u4FE1\u606F");
mnNewMenu_1.setIcon(new ImageIcon(MainFrm.class.getResource("/Image/1245O0Y11Z10-Z34337.gif")));
mnNewMenu_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menuBar.add(mnNewMenu_1);
/**
* 来访信息查询
*/
JMenuItem menuItem_3 = new JMenuItem("\u6765\u8BBF\u4FE1\u606F");
menuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
VisIfmCJInternal vis=new VisIfmCJInternal();
vis.setVisible(true);
desktopPane.add(vis);
}
});
menuItem_3.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
mnNewMenu_1.add(menuItem_3);
JMenuItem menuItem_6 = new JMenuItem("\u7269\u54C1\u51FA\u697C");
menuItem_6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GdOIfmCJInternal gic=new GdOIfmCJInternal();
gic.setVisible(true);
desktopPane.add(gic);
}
});
menuItem_6.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
mnNewMenu_1.add(menuItem_6);
JMenuItem menuItem_7 = new JMenuItem("\u5BDD\u5BA4\u60C5\u51B5");
menuItem_7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DromCIfmJInternal dci=new DromCIfmJInternal();
dci.setVisible(true);
desktopPane.add(dci);
}
});
menuItem_7.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
mnNewMenu_1.add(menuItem_7);
JMenu menu_1 = new JMenu("\u7269\u54C1\u7EF4\u4FEE");
menu_1.setIcon(new ImageIcon(MainFrm.class.getResource("/Image/1245O0O502Y0-512XQ.gif")));
menu_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menuBar.add(menu_1);
JMenuItem menuItem_4 = new JMenuItem("\u7EF4\u4FEE\u5F55\u5165");
menuItem_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
GSCooks_JInternal g=new GSCooks_JInternal();
g.setVisible(true);
desktopPane.add(g);
}
});
menuItem_4.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menu_1.add(menuItem_4);
JMenuItem mntmNewMenuItem = new JMenuItem("\u7EF4\u4FEE\u8BB0\u5F55");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
GRD_JInternal g=new GRD_JInternal();
g.setVisible(true);
desktopPane.add(g);
} catch (PropertyVetoException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
mntmNewMenuItem.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menu_1.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u5904\u7406\u7ED3\u679C");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GRE_JIternal g=new GRE_JIternal();
g.setVisible(true);
desktopPane.add(g);
}
});
mntmNewMenuItem_1.setFont(new Font("Microsoft YaHei UI", Font.PLAIN, 15));
menu_1.add(mntmNewMenuItem_1);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));
desktopPane = new JDesktopPane();
desktopPane.setBackground(new Color(255, 255, 255));
contentPane.add(desktopPane, BorderLayout.CENTER);
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon(MainFrm.class.getResource("/Image/src=http_%2F%2Fcompimg.go007.com%2FTestPic%2FBig%2F2017%2F1%2F10%2F10%2F201701102109008669.png&refer=http_%2F%2Fcompimg.go007.jpg")));
lblNewLabel.setBounds(1003, 488, 298, 249);
desktopPane.add(lblNewLabel);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
/**
* 关闭系统
* @param close
*/
private void closemainfrm(boolean close) {
if(close==true) {
int choose=JOptionPane.showConfirmDialog(null, "此操作需要重启,是否继续?");
if(choose==0) {
dispose();
}
}
}
}
三. 内置窗口 (我的信息):(JInternalFrame)
四. 代码(包括了内置窗口的所有事件)
package cn.View.User;
import java.awt.EventQueue;
import javax.swing.JInternalFrame;
import javax.swing.ImageIcon;
import java.awt.Color;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import cn.Dao.UserDao;
import cn.Util.DbUtil;
import cn.model.User;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.Font;
import java.sql.Connection;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class UserInfoJInternal extends JInternalFrame {
private JTextField useridtxt;
private JTextField userleveltxt;
private JTextField usernametxt;
private JTextField usersextxt;
private JTextField usernumbertxt;
private JTextField useraddresstxt;
DbUtil dbutil=new DbUtil();
UserDao userdao=new UserDao();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UserInfoJInternal frame = new UserInfoJInternal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public UserInfoJInternal() {
getContentPane().setBackground(new Color(204, 204, 204));
setBackground(new Color(0, 153, 204));
getContentPane().setForeground(new Color(0, 0, 0));
JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "\u7528\u6237\u4FE1\u606F", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(102, 0, 0)));
panel.setBackground(new Color(0, 153, 204));
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup()
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 399, GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addContainerGap()
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 394, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
JLabel lblid = new JLabel("\u7528\u6237ID\uFF1A");
lblid.setFont(new Font("宋体", Font.PLAIN, 20));
useridtxt = new JTextField();
useridtxt.setEditable(false);
useridtxt.setColumns(10);
JLabel label = new JLabel("\u7528\u6237\u7EA7\u522B\uFF1A");
label.setFont(new Font("宋体", Font.PLAIN, 20));
JLabel label_1 = new JLabel("\u7528\u6237\u59D3\u540D\uFF1A");
label_1.setFont(new Font("宋体", Font.PLAIN, 20));
userleveltxt = new JTextField();
userleveltxt.setEditable(false);
userleveltxt.setColumns(10);
JLabel label_2 = new JLabel("\u7528\u6237\u6027\u522B\uFF1A");
label_2.setFont(new Font("宋体", Font.PLAIN, 20));
usernametxt = new JTextField();
usernametxt.setEditable(false);
usernametxt.setColumns(10);
usersextxt = new JTextField();
usersextxt.setEditable(false);
usersextxt.setColumns(10);
JLabel label_3 = new JLabel("\u8054\u7CFB\u7535\u8BDD\uFF1A");
label_3.setFont(new Font("宋体", Font.PLAIN, 20));
usernumbertxt = new JTextField();
usernumbertxt.setEditable(false);
usernumbertxt.setColumns(10);
JLabel label_4 = new JLabel("\u5C45\u4F4F\u5730\u5740\uFF1A");
label_4.setFont(new Font("宋体", Font.PLAIN, 20));
useraddresstxt = new JTextField();
useraddresstxt.setEditable(false);
useraddresstxt.setColumns(10);
JButton button = new JButton("\u786E\u5B9A");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
});
button.setFont(new Font("宋体", Font.PLAIN, 15));
JButton button_1 = new JButton("\u4FEE\u6539");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
userupdate_JInternal uifi=new userupdate_JInternal();
uifi.setVisible(true);
MainFrm.desktopPane.add(uifi);
}
});
button_1.setFont(new Font("宋体", Font.PLAIN, 15));
GroupLayout gl_panel = new GroupLayout(panel);
gl_panel.setHorizontalGroup(
gl_panel.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_panel.createSequentialGroup()
.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addGap(37)
.addComponent(button)
.addPreferredGap(ComponentPlacement.RELATED, 174, Short.MAX_VALUE)
.addComponent(button_1))
.addGroup(gl_panel.createSequentialGroup()
.addContainerGap()
.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_panel.createParallelGroup(Alignment.LEADING, false)
.addComponent(label_3, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(label_2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(label_1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(label, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(label_4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(lblid))
.addGap(44)
.addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
.addComponent(useraddresstxt, GroupLayout.PREFERRED_SIZE, 172, GroupLayout.PREFERRED_SIZE)
.addComponent(usernametxt, GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
.addComponent(usersextxt, GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
.addComponent(usernumbertxt, 172, 172, 172)
.addComponent(userleveltxt, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
.addComponent(useridtxt, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE))))
.addGap(200))
);
gl_panel.setVerticalGroup(
gl_panel.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel.createSequentialGroup()
.addContainerGap()
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(useridtxt, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)
.addComponent(lblid))
.addPreferredGap(ComponentPlacement.RELATED, 27, Short.MAX_VALUE)
.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING, false)
.addComponent(userleveltxt, 0, 0, Short.MAX_VALUE)
.addComponent(label, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18)
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(usernametxt, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)
.addComponent(label_1))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(usersextxt, GroupLayout.PREFERRED_SIZE, 18, Short.MAX_VALUE)
.addComponent(label_2))
.addGap(18)
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(usernumbertxt, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)
.addComponent(label_3))
.addGap(18)
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(label_4, GroupLayout.PREFERRED_SIZE, 41, GroupLayout.PREFERRED_SIZE)
.addComponent(useraddresstxt, GroupLayout.PREFERRED_SIZE, 24, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
.addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)
.addComponent(button)
.addComponent(button_1))
.addGap(22))
);
panel.setLayout(gl_panel);
getContentPane().setLayout(groupLayout);
setFrameIcon(new ImageIcon(UserInfoJInternal.class.getResource("/Image/1245O0NQc20-4T61T.gif")));
setTitle("\u7528\u6237\u8D44\u6599");
setIconifiable(true);
setClosable(true);
setBounds(100, 100, 436, 468);
this.FillMyUserInformation();
}
/**
* 对个人信息进行填充
*/
private void FillMyUserInformation() {
String username=LoginFrm.username;
String userpsw=LoginFrm.userpwd;
Connection con=null;
try {
con=dbutil.getCon();
User user=userdao.login(con, new User(username,userpsw,"操作员"));
this.useridtxt.setText(user.getUserId());
this.usernametxt.setText(user.getUserName());
this.userleveltxt.setText(user.getUserLevel());
this.usersextxt.setText(user.getUserSex());
this.usernumbertxt.setText(user.getUserPhone());
this.useraddresstxt.setText(user.getUserAddress());
}catch(Exception e) {
JOptionPane.showMessageDialog(null, "无法连接服务器");
}finally {
try {
dbutil.closecon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}