JFrame
에 이미지를 배경으로 설정할 수있는 방법이 있습니까?JFrame에서 배경 이미지 설정
답변
내장 된 방법은 없지만 여러 가지 방법이 있습니다. 지금 당장 생각할 수있는 가장 간단한 방법은 다음과 같습니다.
JComponent
의 하위 클래스를 만듭니다.paintComponent(Graphics g)
메서드를 재정 의하여 표시 할 이미지를 그립니다.- Set the content pane이 하위 클래스가
JFrame
입니다.
일부 샘플 코드 : 그건 당신이 원하는 거라면이 코드는 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();
}
}
체크 아웃 painComponent 방법에 대한 아래의 링크
http://java-demos.blogspot.in/2012/09/setting-background-image-in-jframe.html
- 1. QPushButton의 배경 이미지 설정
- 2. iOS 배경 이미지 설정
- 3. 자바 스크립트로 배경 이미지 설정
- 4. iphone의 UIToolBar 배경 이미지 설정
- 5. css 배경 이미지 반복 설정
- 6. JQuery - 배경 이미지를 이미지 객체로 설정
- 7. 런타임에 VB.Net에서 스플래시 화면 배경 이미지 설정
- 8. 아이폰 4 시뮬레이터, 배경 이미지 설정?
- 9. 모바일 양식 창용 배경 이미지 설정
- 10. WP7에서 전체 배경 이미지/색상 설정
- 11. Android 앱을로드하는 중에 배경 이미지 설정
- 12. OSX Lion의 개별 데스크톱 배경 이미지 설정
- 13. Blackberry - 설정 한 필드 배경 이미지
- 14. PHP를 사용하여 메일 내용에 배경 이미지 설정
- 15. Android - 배경 화면 이미지 설정 방법
- 16. 자바 스크립트로 데스크톱 배경 이미지 설정
- 17. 이미지 맵의 배경 이미지
- 18. vim에서 배경 이미지 추가
- 19. 배경 이미지
- 20. 이미지 배경
- 21. 배경 이미지
- 22. JDesktopPane의 배경 설정
- 23. 코드를 통해 배경 화면 설정
- 24. JFrame에서 JPanel 제거
- 25. Blackberry에서 이미지 설정
- 26. tabbarcontroller 설정 이미지?
- 27. 이미지 대 UIButton의 배경 이미지
- 28. 여러 이미지 선택 배경 이미지
- 29. webos 배경 이미지 업데이트 문제
- 30. WinForm ListBox의 배경 설정
당신은 super.paintComponents를 사용한다() 메소드를. – Sajad