java的jinterframe_JFrame和JInternalFrame示例学习(转)

packageinternalFrame;importjavax.swing.JInternalFrame;importjavax.swing.JDesktopPane;importjavax.swing.JMenu;importjavax.swing.JMenuItem;importjavax.swing.JMenuBar;importjavax.swing.JFrame;importjavax.swing.KeyStroke;import java.awt.event.*;import java.awt.*;/** InternalFrameDemo.java requires:

* MyInternalFrame.java*/

public class InternalFrameDemo extendsJFrameimplementsActionListener {

JDesktopPane desktop;publicInternalFrameDemo() {super("InternalFrameDemo");//让大窗口在屏幕的每一个边缘缩进50个像素。

int inset = 50;

Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();

setBounds(inset, inset,

screenSize.width- inset*2,

screenSize.height- inset*2);//建立GUI。

desktop = new JDesktopPane(); //定义一个桌面面板

createFrame(); //调用自定义方法,创建第一个窗体

setContentPane(desktop);

setJMenuBar(createMenuBar());  //创建菜单栏//拖放模式

desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);

}protectedJMenuBar createMenuBar() {

JMenuBar menuBar= newJMenuBar();//定义并实例化菜单栏项目

JMenu menu = new JMenu("Document");

menu.setMnemonic(KeyEvent.VK_D); //定义热键

menuBar.add(menu);//创建第一个子菜单项

JMenuItem menuItem = new JMenuItem("New");

menuItem.setMnemonic(KeyEvent.VK_N);

menuItem.setAccelerator(KeyStroke.getKeyStroke(

KeyEvent.VK_N, ActionEvent.ALT_MASK));

menuItem.setActionCommand("new");

menuItem.addActionListener(this);

menu.add(menuItem);//创建第二个子菜单项

menuItem = new JMenuItem("Quit");

menuItem.setMnemonic(KeyEvent.VK_Q);

menuItem.setAccelerator(KeyStroke.getKeyStroke(

KeyEvent.VK_Q, ActionEvent.ALT_MASK));

menuItem.setActionCommand("quit");

menuItem.addActionListener(this);

menu.add(menuItem);returnmenuBar;

}//对菜单的选择操作

public voidactionPerformed(ActionEvent e) {if ("new".equals(e.getActionCommand())) { //新增

createFrame();

}else { //退出

quit();

}

}//创建一个新的内置窗体

protected voidcreateFrame() {

MyInternalFrame frame= newMyInternalFrame();

frame.setVisible(true);

desktop.add(frame);try{

frame.setSelected(true);

}catch(java.beans.PropertyVetoException e) {}

}//退出应用

protected voidquit() {

System.exit(0);

}/*** Create the GUI and show it. For thread safety,

* this method should be invoked from the

* event-dispatching thread.*/

private static voidcreateAndShowGUI() {//Make sure we have nice window decorations.

JFrame.setDefaultLookAndFeelDecorated(true);//Create and set up the window.

InternalFrameDemo frame = newInternalFrameDemo();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Display the window.

frame.setVisible(true);

}public static voidmain(String[] args) {//Schedule a job for the event-dispatching thread://creating and showing this application's GUI.

javax.swing.SwingUtilities.invokeLater(newRunnable() {public voidrun() {

createAndShowGUI();

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值