2

jmenubar+jtoolbar の背景として画像を設定できるかどうかを知りたいです (それらの 1 つだけでなく、それぞれに 1 つではなく、両方に適用されます) ...

誰でもアイデアを持っていますか?? 可能であればどうすればいいですか?

ありがとう !

説明する画像を次に示します。 ここに画像の説明を入力

解決済み :: 2 つの画像 (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));
4

1 に答える 1

3

確かに、ただし、それらを個別にオーバーライドする必要があります。また、グローバル変数 (または 2 つの間で渡すことができる変数) を保持して、それぞれのサイズを把握できるようにする必要もあります。

ペイントを行うには、paintComponent() をオーバーライドするか、独自の UI デリゲートを追加する必要があります。画像を読み込んで、メニューバーの上部のみ (または相対パーセンテージ) をペイントしてから、ツールバーの下部のみまたは相対パーセンテージをペイントできます。

于 2011-12-28T12:21:14.377 に答える