JFrame을 사용하고 있으며 프레임에 배경 이미지를 보관했습니다. 이제 문제는 이미지의 크기가 프레임의 크기보다 작아서 같은 창을 빈 곳에서 다시 유지해야한다는 것입니다. 사용자가 최대화 버튼을 클릭하면 런타임에 프레임의 빈 영역에 이미지를 놓아야 할 수 있습니다. 아무도 이것을 수행하는 방법을 말해 줄 수 있습니까? 대신 배경 이미지를 여러 번 사용하는 경우자바 스윙 배경 이미지
답변
Windows 바탕 화면의 배경 이미지 같은 것을 원하는 크기를 조정하거나 그것을 중심으로 표시 할?
는 한 번만 이미지를 유지하고 단지의 paintComponent 방법에 여러 번 칠해야합니다.
이것에 대한 예제 코드를 줄 수 있습니까? 당신이 가지고 있다면. 그것은 나에게 큰 도움이 될 것입니다. 부디? – Nilesh
이미지의 품질을 유지하기 위해, 어떻게 타일 이미지에 대한 권장 사항이 대신 그것을 스트레칭 않습니다 ... 응답의 작업에 대한 –
당신이 원하는 행동 명확하지 비록 당신이 기지개 대 바둑판에 대해 얘기처럼 들린다. 타일에
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.AbstractAction;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main {
public static void main(String[] args) throws IOException {
final Image image = ImageIO.read(new URL("http://sstatic.net/so/img/logo.png"));
final JFrame frame = new JFrame();
frame.add(new ImagePanel(image));
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
@SuppressWarnings("serial")
class ImagePanel extends JPanel {
private Image image;
private boolean tile;
ImagePanel(Image image) {
this.image = image;
this.tile = false;
final JCheckBox checkBox = new JCheckBox();
checkBox.setAction(new AbstractAction("Tile") {
public void actionPerformed(ActionEvent e) {
tile = checkBox.isSelected();
repaint();
}
});
add(checkBox, BorderLayout.SOUTH);
};
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (tile) {
int iw = image.getWidth(this);
int ih = image.getHeight(this);
if (iw > 0 && ih > 0) {
for (int x = 0; x < getWidth(); x += iw) {
for (int y = 0; y < getHeight(); y += ih) {
g.drawImage(image, x, y, iw, ih, this);
}
}
}
} else {
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}
}
많이 감사의 예를 참조하십시오? – Nilesh
안녕을 finnw – NumenorForLife
또 다른 방법 이미지가 TexturePaint
함께 :
public class TexturePanel extends JPanel {
private TexturePaint paint;
public TexturePanel(BufferedImage bi) {
super();
this.paint = new TexturePaint(bi, new Rectangle(0, 0, bi.getWidth(), bi.getHeight()));
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(paint);
g2.fill(new Rectangle(0, 0, getWidth(), getHeight()));
}
}
- 1. 자바 스크립트로 배경 이미지 설정
- 2. 자바 스윙 - JPanel과
- 3. 자바 스윙 JToolBar
- 4. 자바 스크립트 크기 조정 배경 이미지
- 5. 자바 스크립트로 데스크톱 배경 이미지 설정
- 6. 이미지 맵의 배경 이미지
- 7. 스윙 이미지 표시
- 8. 배경 이미지
- 9. 이미지 배경
- 10. 배경 이미지
- 11. 자바 스윙 투명성 그리기 문제
- 12. 축소 배경 이미지
- 13. 자바 스윙 콤보 박스
- 14. 실생활 자바 스윙 프로젝트
- 15. 자바 스윙 레이아웃 문제
- 16. 자바 스윙 디자인
- 17. 자바 스윙 디스플레이 문제
- 18. 자바 스윙 JTable 정렬
- 19. 자바 스윙 : 포커스 문제
- 20. 자바 스윙 사용
- 21. 자바 스윙 보류 버튼
- 22. 자바 스윙 클리핑 문제
- 23. 자바 (스윙) : 왼쪽 하단을
- 24. 자바 스윙 질의
- 25. 자바 스윙 테이블 질문
- 26. 자바 스윙 - JLabel 위치
- 27. 자바 스윙 버튼 색상
- 28. 자바 스윙 다시 그리기()
- 29. 미생물 - 자바 스윙 도구
- 30. 백그라운드에서 자바 스윙 초기화
"내가 빈 부분에 다시 한 번 같은 이미지를 계속해야"아무튼
이 프로그램은 모두의 예를 가지고 나에게 의미가 없다. 당신이 갖고있는 것과 원하는 것을 가지고 이미지를 만들 수 있습니까? –