2011-12-28 10 views
2

イメージをjmenubar + jtoolbarのバックグラウンドとして設定できるかどうかを知りたいと思います(theymの1つだけでなく、それぞれのtheymの1つではなく、両方の場合もオンです)。 ..jmenubar + jtoolbar内にイメージを配置する

誰でもアイデアがありますか? 可能な場合はどうすればよいですか?

ありがとうございます!ここで

説明するための画像:解決 enter image description here

::私は(私のJMenuBar + JToolBarのに合った適切なサイズにcutted)2枚の画像を使用してオーバーライドとして、オブジェクトの宣言にこれらを追加し、それは素晴らしい作品!ここにコードがあります:

/////////////////////////////// 
    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)); 

答えて

3

確かに、それらを別々に上書きする必要があります。また、それぞれの大きさを知るために、グローバル変数(またはその間に渡すことができる変数)を保持する必要があります。

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

+0

2つのコンテナの間に画像を分割する以外の方法はありませんか? (イメージのjframe-positioningに関連して) – Jsncrdnl

+0

私はあなたのソリューションを使いました。私はそれがうまくないと思った(画像間の分離、それらを切り離す再スケーリング、またはそのようなものだが問題はない)素晴らしい作品だ!ありがとう! – Jsncrdnl

関連する問題