xpluginframe.java

来自「java写的浏览器」· Java 代码 · 共 96 行

JAVA
96
字号
/****************************************************************
*              XBrowser  -  eXtended web Browser                *
*                                                               *
*           Copyright (c) 2000-2001  Armond Avanes              *
*     Refer to ReadMe & License files for more information      *
*                                                               *
*                                                               *
*                      By: Armond Avanes                        *
*       Armond555@yahoo.com     &    Armond333@yahoo.com        *
*                http://xbrowser.sourceforge.net/               *
*****************************************************************/
package xbrowser.widgets;

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

import javax.swing.*;

import xbrowser.*;
import xbrowser.util.*;

public class XPluginFrame extends XFrame
{
	public XPluginFrame(XPluginObject plugin)
	{
		this.plugin = plugin;

		setTitle( plugin.getTitle() );
        setIconImage( plugin.getIcon().getImage() );

		getContentPane().setLayout(new BorderLayout(5,5));
		getContentPane().add(createPluginPanel(plugin), BorderLayout.CENTER);

        setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
		pack();
	}

    private JPanel createPluginPanel(XPluginObject plugin)
    {
	JPanel pnl = new JPanel( new BorderLayout(0,0) );
	JPanel pnl_north = new JPanel( new BorderLayout(0,0) );
	JPanel pnl_east = new JPanel( new FlowLayout() );

		pnl_east.add( XRepository.getComponentBuilder().buildFlatButton(new DockableAction(), -1, -1) );
		pnl_east.add( XRepository.getComponentBuilder().buildFlatButton(new CloseAction(), -1, -1) );

		pnl_north.add(new JLabel(plugin.getTitle()), BorderLayout.WEST);
		pnl_north.add(pnl_east, BorderLayout.EAST);
		pnl_north.add(new JSeparator(JSeparator.HORIZONTAL), BorderLayout.SOUTH);

		pnl.add(pnl_north,BorderLayout.NORTH);
		pnl.add(plugin.getComponent(),BorderLayout.CENTER);

		return pnl;
	}

	protected void provideShowingPreliminaries()
	{
		centralizeScreen();
	}

	protected void provideHidingPreliminaries()
	{
	}

    private class CloseAction extends XDefaultAction
    {
        public CloseAction()
        {
            super(XPluginFrame.this, "Close", null);
        }

        public void actionPerformed(ActionEvent e)
        {
			plugin.stop();
		    setVisible(false);
        }
    }

    private class DockableAction extends XDefaultAction
    {
        public DockableAction()
        {
            super(XPluginFrame.this, "Dockable", null);
        }

        public void actionPerformed(ActionEvent e)
        {
			plugin.setDock(XProjectConstants.PLUGIN_DOCK_DOCKABLE);
        }
    }

// Attributes:
	private XPluginObject plugin = null;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?