1

考虑以下代码:

/**
 * Main class
 * @author X2
 *
 */
class DrawingPanel extends JPanel implements MouseListener, MouseMotionListener ,KeyListener
{
    /**
     *    private variables
     */

    // dimensions of the window
    private static final long serialVersionUID = 1L;
    private static final Dimension MIN_DIM = new Dimension(300, 300);
    private static final Dimension PREF_DIM = new Dimension(500, 500);


    /**
     * Setting the dimensions of the window
     */
    public Dimension getMinimumSize() { return MIN_DIM; }

    public Dimension getPreferredSize() { return PREF_DIM; }



    /**
     *  The constructor
     */
    DrawingPanel()
    {
        super();
        addMouseListener(this);
        addMouseMotionListener(this);
        addKeyListener(this);
        setFocusable(true);
        requestFocusInWindow();
    }

public void paintComponent(Graphics g)
{
// code 
}

public void mouseClicked(MouseEvent evt) 
{ // code 

}

// more code 

如何在需要打开和保存文件选项的窗口中添加面板。

目前窗口看起来像这样: 在此处输入图像描述

谢谢

4

3 回答 3

3

您可以将 aJMenuBar或 a添加JToolBar到封闭中,如此JFrame所示。

于 2013-03-31T06:41:18.957 回答
3

JMenuBar 添加到 JFrame中,而不是添加到JPanel(add JMenuBar, BorderLayout.NORTH)(可能,没问题,也许不是正确的方式)

于 2013-03-31T06:41:29.867 回答
3

这取决于。

您可以使用a ,BorderLayoutJMenuBarNORTH

然后问题归结为您如何布局任何子组件?您需要一种内容窗格,这将允许在该CENTRE位置为容器设置不同的布局管理器

或者,您可以使用在父组件层次结构中SwingUtilities.getAncestorOfClass查找第一个实例,或者如果您介意转换结果。JFrameSwingUtilities.getWindowAncestor

更新

我突然想到,如果你要使用getAncestorOfClass,你最好寻找一个 的实例JRootPane,它有一个setJMenuBar. 布局JRootPane菜单栏和内容窗格(以及其他一些事情)是由

于 2013-03-31T06:45:23.733 回答