当前位置:  技术问答>java相关

JInternalWindow的一些问题,(希望大家讨论)

    来源: 互联网  发布时间:2015-01-24

    本文导语:      我的application要实现多窗口,因此使用JInternalWindow,但是现在的问题,不知道怎么对InternalWindow进行操作,因为我要在上面做图,而且还要包含一些必要的label,button之类的,不知道怎么进行。请大家帮忙……  ...

    我的application要实现多窗口,因此使用JInternalWindow,但是现在的问题,不知道怎么对InternalWindow进行操作,因为我要在上面做图,而且还要包含一些必要的label,button之类的,不知道怎么进行。请大家帮忙……
    谢谢。

|
import javax.swing.JInternalFrame;

import java.awt.event.*;
import java.awt.*;

public class MyInternalFrame extends JInternalFrame 
{
    static int openFrameCount = 0;
    static final int xOffset = 30, yOffset = 30;

    public MyInternalFrame() 
    {
        super("Document #" + (++openFrameCount), 
              true, //resizable
              true, //closable
              true, //maximizable
              true);//iconifiable

        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(new Button("asdf"));
        setSize(300,300);
   }
}

//////
import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JFrame;

import java.awt.event.*;
import java.awt.*;

public class InternalFrameDemo extends JFrame 
{
    JDesktopPane desktop;
    
    public InternalFrameDemo() 
    {
        super("InternalFrameDemo");
        //Make the big window be indented 50 pixels from each edge 
        //of the screen.
        int inset = 50;
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(inset, inset, screenSize.width - inset*2, screenSize.height-inset*2);
        //Quit this app when the big window closes.
        addWindowListener(new WindowAdapter() 
        {
            public void windowClosing(WindowEvent e) 
            {
                System.exit(0);
            }
        });
        //Set up the GUI.
        desktop = new JDesktopPane(); //a specialized layered pane
        createFrame(); //Create first window
        setContentPane(desktop);
        setJMenuBar(createMenuBar());
        //Make dragging faster:
        desktop.putClientProperty("JDesktopPane.dragMode", "outline");
    }

    protected JMenuBar createMenuBar() 
    {
        JMenuBar menuBar = new JMenuBar();
        JMenu menu = new JMenu("Document");
        menu.setMnemonic(KeyEvent.VK_D);
        JMenuItem menuItem = new JMenuItem("New");
        menuItem.setMnemonic(KeyEvent.VK_N);
        menuItem.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent e) 
            {
                createFrame();
            }
        });
        menu.add(menuItem);
        menuBar.add(menu);
        return menuBar;
    }

    protected void createFrame() 
    {
        MyInternalFrame frame = new MyInternalFrame();
     frame.setVisible(true); //necessary as of kestrel
        desktop.add(frame);
        try 
        {
           frame.setSelected(true);
        } 
        catch (java.beans.PropertyVetoException e) 
        {
        
        }
    }

    public static void main(String[] args) 
    {
        InternalFrameDemo frame = new InternalFrameDemo();
        frame.setVisible(true);
    }
}

|
和 JFrame 一样。
尽管用就是了。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3