JFrame
の画像を背景として設定する方法はありますか?JFrameで背景画像を設定する
答えて
組み込みメソッドはありませんが、いくつかの方法があります。現時点で私が考えることができる最も単純な方法は、
- サブクラス
JComponent
を作成します。 paintComponent(Graphics g)
メソッドをオーバーライドして、表示するイメージをペイントします。このサブクラスであるJFrame
の- Set the content pane
いくつかのサンプルコード:それはあなたが望んだ場合には、このコードは、JFrame
に合わせて画像をリサイズ処理しないことを
class ImagePanel extends JComponent {
private Image image;
public ImagePanel(Image image) {
this.image = image;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
}
}
// elsewhere
BufferedImage myImage = ImageIO.read(...);
JFrame myJFrame = new JFrame("Image pane");
myJFrame.setContentPane(new ImagePanel(myImage));
注意。
これを試してみてください:
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test {
public static void main(String[] args) {
JFrame f = new JFrame();
try {
f.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("test.jpg")))));
} catch (IOException e) {
e.printStackTrace();
}
f.pack();
f.setVisible(true);
}
}
をちなみに、これはコンテンツ・ペインがコンテナでないになります。物事を追加したい場合は、JPanelをサブクラス化してpaintComponentメソッドをオーバーライドする必要があります。
実際、JLabel(すべてのJComponentsと同様)はContainerを拡張しています。ラベルに何かを追加するとどうなりますか? –
実際には何も...私はそれを試した。例えばJTextAreaを追加することはできますが、描画はしません。 –
ラベルのレイアウトがnullであるため、何も表示されません。ラベルのレイアウトマネージャを設定し、コンポーネントを追加することができます。コンポーネントのサイズは、ラベルに追加されたコンポーネントではなく、イメージのサイズによって決まることに注意してください。 – camickr
Background Panelクラスを使用できます。上で説明したようにカスタムペイントを行いますが、拡大、タイルまたは通常サイズのイメージを表示するオプションがあります。また、イメージをフレームのコンテンツペインとして使用してJLabelを使用する方法についても説明します。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class BackgroundImageJFrame extends JFrame
{
JButton b1;
JLabel l1;
public BackgroundImageJFrame() {
setSize(400,400);
setVisible(true);
setLayout(new BorderLayout());
JLabel background=new JLabel(new ImageIcon("C:\\Users\\Computer\\Downloads\\colorful_design.png"));
add(background);
background.setLayout(new FlowLayout());
l1=new JLabel("Here is a button");
b1=new JButton("I am a button");
background.add(l1);
background.add(b1);
}
public static void main(String args[])
{
new BackgroundImageJFrame();
}
}
チェックアウト、下のリンクを
http://java-demos.blogspot.in/2012/09/setting-background-image-in-jframe.html
- 1. 背景画像を含むJFrame
- 2. Synth - JFrameの背景を設定する
- 3. 背景画像を設定する
- 4. 画像を背景に設定する
- 5. ピッカーの背景画像を設定
- 6. jQuery CSSが背景に背景画像を設定した後:
- 7. UIButton:画像ビューの背景を設定する(画像を設定しない)
- 8. HTML - 設定した背景画像
- 9. 、設定された背景画像
- 10. 別の背景画像の背後に背景を設定するには?
- 11. Android:アクティビティで背景色と半透明の背景画像を設定する
- 12. 背景画像カルーセルの背景画像
- 13. 背景画像上の背景画像
- 14. 画像のblured画像を背景に設定したい
- 15. 背景JFrameを使ったJavaでのウィンドウの画像
- 16. アンドロイドアプリケーションで画像を背景として設定する
- 17. Androidでmdpi、ldpi、hdpiの背景画像を設定する
- 18. Codeigniterで背景画像(jquery)を設定するには
- 19. divと背景の代替画像をCSSで設定する
- 20. ヤフーのメールで背景画像を設定する問題
- 21. イオンスライドで画像を背景に設定する
- 22. シーソーでパネルの背景の画像を設定するには?
- 23. AndroidでWebviewの背景画像を設定する
- 24. 画像をパイソンの背景にタートルモジュールで設定する
- 25. ucブラウザで背景画像の高さを設定する
- 26. 背景画像をCSSで設定する
- 27. BrowserActionで背景画像を設定する
- 28. tkinterで背景画像を設定する
- 29. コードネーム1のフォームにプログラムで背景画像を設定する
- 30. IrfanViewで透明な画像の背景を設定する
あなたはpainComponentメソッドにsuper.paintComponents()メソッドを使用する必要があります。 – Sajad