java图形界面子窗体怎么弄?

java图形界面子窗体怎么弄?高点代码来加上注释谢谢... java图形界面子窗体怎么弄? 高点代码来 加上注释 谢谢 展开
 我来答
匿名用户
2013-04-15
展开全部
给你一段我自己用Swing写的MDI(多文档用户界面)的代码,仅供参考: package com.jb.cdjj.y2t027.flydream.hrms.swing;import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyVetoException;
import java.text.SimpleDateFormat;
import java.util.Calendar;import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JToolBar;
import javax.swing.Timer;
import javax.swing.border.BevelBorder;import com.jb.cdjj.y2t027.flydream.hrms.pojo.UsersPojo;
import com.jb.cdjj.y2t027.flydream.hrms.swing.component.JDesktopScrollPane;
import com.jb.cdjj.y2t027.flydream.hrms.swing.utils.CharacterCommon;/**
* <p>描述:FrmMain 主界面视窗UI类
* <p>作者:邓超
* <p>班级:Y2T027 FlyDream 小组
* <p>时间:2009-5-13
* <p>地点:宿舍
* <p>版本:1.0.0.1
*/
public class FrmMain extends JFrame { /**
* 序列化版本ID
*/
private static final long serialVersionUID = -6893438572255430328L; {
// 设置UI感观效果(使用三方jar包:looks-2.1.4.jar)
try {
javax.swing.UIManager.setLookAndFeel("com.jgoodies.looks.plastic.PlasticXPLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
} /**
* UI组件
*/
private JMenuItem mnuItemHelpTopic;
private JPanel pnlMain;
private JMenu mnuHelp;
private JMenuItem mnuItemDelete;
private JPanel pnlTlb;
private JSeparator septEdit;
private JMenuItem mnuItemPaste;
private JMenuItem mnuItemCopy;
private JMenuItem mnuItemCut;
private JMenu mnuEdit;
private JMenuItem mnuItemLock;
private JMenuItem mnuItemExit;
private JSeparator septSystemBottom;
private JMenuItem mnuItemAbout;
private JMenuItem mnuItemLogout;
private JSeparator septSystemTop;
private JMenuItem mnuItemPermissions;
private JMenuItem mnuItemParamConfig;
private JLabel lblLoginUser;
private JScrollPane pnlScrollContent;
private JMenuItem mnuCloseAll;
private JSeparator septWindow;
private JMenuItem mnuItemCloseCurrent;
private JMenuItem mnuItemSwitch;
private JMenu mnuWindow;
private JLabel lblTime;
private JLabel lblProgressMsg;
private JProgressBar progressOperation;
private JDesktopPane pnlDsk;
private JPanel pnlStatus;
private JButton btnHelp;
private JButton btnExit;
private JButton btnLogout;
private JButton btnLockScreen;
private JToolBar tlbMain;
private JMenu mnuSystem;
private JMenuBar mnuBarMain;
private JButton btnPermissions;
private JButton btnParamConfig;
private JLabel lblTlbSpliter2;
private JLabel lblTlbSpliter1;
private JMenuItem mnuModifyPwd;
private static FrmLogin frmLogin;
private JPanel pnlContent;
private static UsersPojo currentLoginUser; /**
* 获取当前登录用户
* @return 当前登录用户实体
*/
public static UsersPojo getCurrentLoginUser() {
return currentLoginUser;
}
/**
* 设置当前登录用户
* @param currentLoginUser 当前登录用户实体
*/
public static void setCurrentLoginUser(UsersPojo currentLoginUser) {
FrmMain.currentLoginUser = currentLoginUser;
} /**
* 参数化构造器
* @param loginWindow 登录UI实例
*/
public FrmMain(FrmLogin loginWindow) {
super();
frmLogin = loginWindow;
initGUI();
this.addComponentListener(new ComponentAdapter(){ /**
* 组件显示事件方法
*/
@Override
public void componentShown(ComponentEvent e) {
lblLoginUser.setText("【"
+ (currentLoginUser != null
? (currentLoginUser.getLoginAccount() + "/" + currentLoginUser.getUsersName())
: "未登录")
+ "】");
super.componentShown(e);
}

});
}

/**
* UI组件初始化方法
*/
private void initGUI() {
try {
{
BorderLayout thisLayout = new BorderLayout();
getContentPane().setLayout(thisLayout);
}
{
mnuBarMain = new JMenuBar();
setJMenuBar(mnuBarMain);
{
mnuSystem = new JMenu();
mnuBarMain.add(mnuSystem);
mnuSystem.setText("系统(S)");
mnuSystem.setMnemonic(java.awt.event.KeyEvent.VK_S);
mnuSystem.setName("mnuSystem");
mnuSystem.setDoubleBuffered(false);
{
mnuItemParamConfig = new JMenuItem();
mnuSystem.add(mnuItemParamConfig);
mnuItemParamConfig.setText("参数设置(P)...");
mnuItemParamConfig.setToolTipText("前台系统字典及参数设置");
mnuItemParamConfig.setMnemonic(java.awt.event.KeyEvent.VK_P);
mnuItemParamConfig.setName("mnuItemParamConfig");
mnuItemParamConfig.setIcon(new ImageIcon(getClass().getClassLoader().getResource("img/Param.png")));
mnuItemParamConfig.setDoubleBuffered(false);
mnuItemParamConfig.addActionListener(new ActionListener() {
/**
* 激活参数设置菜单项的事件方法
*/
public void actionPerformed(ActionEvent e) {
openOnlyOneInternalFrame(FrmInlParam.getInstance());
}
});
}
{
mnuItemPermissions = new JMenuItem();
mnuSystem.add(mnuItemPermissions);
mnuItemPermissions.setText("权限管理(E)...");
mnuItemPermissions.setToolTipText("系统用户及其授权管理");
mnuItemPermissions.setName("mnuItemPermissions");
mnuItemPermissions.setMnemonic(java.awt.event.KeyEvent.VK_E);
mnuItemPermissions.setIcon(new ImageIcon(getClass().getClassLoader().getResource("img/Permissions.png")));
mnuItemPermissions.setDoubleBuffered(false);
mnuItemPermissions.addActionListener(new ActionListener() {
/**
* 激活权限管理菜单项的事件方法
*/
public void actionPerformed(ActionEvent e) {
openOnlyOneInternalFrame(FrmInlPermissions.getInstance());
}
});
}
{
septSystemTop = new JSeparator();
mnuSystem.add(septSystemTop);
septSystemTop.setName("septSystemTop");
septSystemTop.setDoubleBuffered(false);
}
----------------------------------字数太多,只能分开发。
黄先生
2024-12-27 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采... 点击进入详情页
本回答由黄先生提供
匿名用户
2013-04-15
展开全部
实在太长了!我都贴了好几次都没贴完,把核心方法给你贴出来: /**
* 保证只打开一个内部视窗的方法
* @param frame 要呼叫的内部视窗对象引用
*/
private void openOnlyOneInternalFrame(JInternalFrame frame) {
// 获取桌面面板组件数组
JInternalFrame[] frames = pnlDsk.getAllFrames();
boolean isExist = false;
// 遍历查找指定引用的内部视窗组件是否存在
for (JInternalFrame tmpFrame : frames) {
if (tmpFrame == frame) {
isExist = true;
}
}
// 如果不存在则添加到桌面面板
if (!isExist) {
pnlDsk.add(frame);
// 设置内部视窗位置居中
int x = (pnlDsk.getWidth() - frame.getWidth()) / 2;
int y = (pnlDsk.getHeight() - frame.getHeight()) / 2;
frame.setLocation(x, y);
}
// 将被呼叫内部视窗重新以默认方式布局(解决最小化后还原默认大小的问题)
frame.pack();
// 将被呼叫内部视窗显示
frame.setVisible(true);
// 将被呼叫内部视窗置顶
// 方式一: 从类 java.awt.Window 继承的方法
// frame.toFront();
// 方式二:从类 javax.swing.JInternalFrame 继承的方法
frame.moveToFront();

// 将被呼叫内部视窗设置为选中状态(标题栏高亮)
try {
frame.setSelected(true);
} catch (PropertyVetoException ex) {
ex.printStackTrace();
}
} ------------------------------------- 要源代码就加我QQ,或发我QQ邮件,我回给你。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-15
展开全部
先写好两个窗体,在主窗体中将其实例化,并将其设置为可见!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式