将图像放置在jmenubar + jtoolbar中

时间:2011-12-28 12:12:28

标签: java swing background jmenubar jtoolbar

我想知道是否可以将图像设置为jmenubar + jtoolbar的背景(不仅仅是针对他们中的一个,而不是针对他们中的每一个,但是对于他们而言......)

任何人都有自己的想法? 如果有可能,我该怎么做呢?

谢谢!

这里有一张图片来解释: enter image description here

Solved ::我使用了两个图像(剪切到合适的大小以适应我的jmenubar + jtoolbar)并将这些图像作为覆盖添加到对象的声明中并且效果很好!这是一段代码:

    ///////////////////////////////
    JToolBar toolBar = new JToolBar(){
        @Override
        protected void paintComponent(Graphics g){

            Image photo = getToolkit().getImage("src/MainFrame/Images/xtremeCalliBottom.png");
            super.paintComponent(g) ; 
            int x=(mainFrame.getWidth()-200), y=0 ; 
            if(photo != null) 
                g.drawImage (photo, x, y, this);
        }
    };

    // ............

    //========== Menu Bar
    jMenuBar = new JMenuBar(){
        @Override
        protected void paintComponent(Graphics g){

            Image photo = getToolkit().getImage("src/MainFrame/Images/xtremeCalliTop.png");
            super.paintComponent(g) ; 
            int x=(mainFrame.getWidth()-200), y=0 ; 
            if(photo != null) 
                g.drawImage (photo, x, y, this);
        }
    };

     // ................


    jMenuBar.setPreferredSize(new Dimension(100, 25));
    toolBar.setPreferredSize(new Dimension(100,40));

1 个答案:

答案 0 :(得分:3)

当然可以,但你必须单独覆盖它们。你还需要保留一些全局变量(或者你可以在两者之间传递的变量),以便他们知道每个变量有多大。

您需要覆盖paintComponent()或添加自己的UI委托来进行绘画。您可以加载图像并仅在菜单栏上绘制顶部(或相对百分比),然后仅在工具栏上绘制底部或相对百分比。