2012-01-07 12 views
0

Javaでアプリケーションのバックグラウンドとしてイメージを設定する方法が不思議でした。私はアンドロイドでそれが非常にまっすぐであることを知っています。そしてWindowsビルダープロには、Java GUIを構築するためのすばらしいツールがたくさんあります。前もって感謝します!私のアプリケーションは、あなたが呼び出してコンポーネントの色を設定することができます...灰色としてeclipseまたはwindows builderプロのJavaアプリケーションでイメージを背景として設定する方法

+0

現在使用しているGUIライブラリは何ですか?スイング?それとも、これはまだあなたが求めているAndroidですか?ライブラリのタグを追加する必要があります。 –

+0

申し訳ありませんが、私はスイングコンポーネント(JPanel、JFrameなど)を使用しています – user1058210

+1

その後、Swingアプリケーションの背景イメージを作成する方法について多くのことが書かれています。私はGoogleがこれであなたを助けなかったことに驚いています。 –

答えて

1

をかなり悪いなります

.setBackground(myColor); 

などのJLabelのようないくつかのコンポーネントを有効にするには、色の変化のために、その上にこれを呼び出すことが必要です。

.setOpaque(true); 

希望しました。

+2

彼の質問のタイトルには「イメージ」という言葉が含まれているので、あなたの答えが彼の問題を解決するとは思わない。 –

2

画像に背景を正確に設定することはできません。あなたがしなければならないことは、絵画の間にグラフィックスにイメージを描くことです。したがって、JPanelをサブクラス化してpaintComponent()メソッドをオーバーライドし、そこにイメージを描画する必要があります。

public class ImagePanel extends JPanel { 
    private Image bgImage; 

    public Image getBackgroundImage() { 
     return this.bgImage; 
    } 

    public void setBackgroundImage(Image image) { 
     this.bgImage = image; 
    } 

    protected paintComponent(Graphics g) { 
     super.paintComponent(g); 
     g.drawImage(bgImage, 0, 0, bgImage.getWidth(null), bgImage.getHeight(null), null); 
    } 
} 
+0

元のポスターがその努力をするのに迷惑をかけるのであれば、これはGoogleが彼に語ったものです。 1+。それを不透明にした後にcontentPaneとしてJLabelを使用し、適切なレイアウトマネージャーを与え、それに希望のイメージを持つImageIconを与えます。 –

+0

応答チャバードありがとう! paintComponentメソッドの2行目のイメージはbgImageであるはずですか?私がbgImageに変更した場合、getWidth()とgetHeight()が引数としてImageObserverを必要とすることを知らせるメッセージが表示されます。また、bgImageを設定する方法は?ありがとう – user1058210

+0

イメージを塗りつぶす前にイメージがすでに読み込まれていると思うので、単にnullを渡してください。 – chubbsondubs

0

技術的にはあなたが全体画面にして、特定の背景にあるアイコンのオプションchaneにラベルを追加することができます。ソース

private void initialize() { 
    frame = new JFrame(); 
    frame.setBounds(100, 100, 450, 300); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.getContentPane().setLayout(null); 

    JButton btnNewButton = new JButton("Let's start!"); 
    btnNewButton.setFont(new Font("David", Font.ITALIC, 12)); 
    btnNewButton.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      JOptionPane.showMessageDialog(null, "Now we will have to add some code here right =]?"); 
     } 
    } 
                 ); 
    btnNewButton.setBounds(158, 120, 89, 23); 
    frame.getContentPane().add(btnNewButton); 


    JLabel lblNewLabel = new JLabel("n"); 
    lblNewLabel.setIcon(new ImageIcon("gene.jpg")); 
    lblNewLabel.setBounds(0, 0, 434, 261); 
    frame.getContentPane().add(lblNewLabel); 
} 

http://imgur.com/rSTXZLP.jpg

で、例えば

JLabel lblNewLabel = new JLabel("n"); 
lblNewLabel.setIcon(new ImageIcon("gene.jpg")); 
lblNewLabel.setBounds(0, 0, 434, 261); 
frame.getContentPane().add(lblNewLabel); 

関連する問題