【问题标题】:Placing an image within a jmenubar + jtoolbar在 jmenubar + jtoolbar 中放置图像
【发布时间】:2011-12-28 12:12:28
【问题描述】:

我想知道是否可以将图像设置为 jmenubar+jtoolbar 的背景(不仅是其中一个,不是每个都一个,而是两个都打开)...

有人有想法吗?? 如果可能的话,我应该怎么做?

谢谢!

这里有一张图片来解释:

已解决 :: 我使用了两个图像(切割成合适的大小以适合我的 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));

【问题讨论】:

    标签: java swing background jmenubar jtoolbar


    【解决方案1】:

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

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

    【讨论】:

    • 除了在两个容器之间拆分我的图像之外,没有其他方法了吗? (相对于图像的jframe定位,例如?)
    • 我使用了您的解决方案。我认为这不太好(图像之间的分离,重新缩放分离这些或类似的东西,但没问题)它很好用!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多