제목이 약간 혼란 스럽습니다. 그래서 설명하겠습니다. 내가 뭘하고 싶은건 내 최고의 응용 프로그램에서 상단의 중심에 고정되어있는 배경 이미지입니다 (x 축 중심, y 축 상단에서 오른쪽). 그리고 JFrame의 크기가 바뀌더라도 이걸 원합니다. 그러나 그 이미지 밑에 나는 창 크기에 맞게 반복되는 패턴을 원합니다.하나의 JFrame에 여러 유형의 배경 추가하기
나는 논리적 솔루션을 제시하기 위해 이것을 수행하는 몇 가지 방법을 생각했다. (이미 답변 된 StackOverflow 질문을 사용했다.) (나는 그것이 실제로 작동하지 않기 때문에 논리적이라고한다.)
내가 이것을 사용합니다 - Center a JPanel in a JFrame
나는이 함께이 문제 -이에서 솔루션을 기반으로한다
JPanel panel = new JPanel();
panel.getContentPane(backgroundImage);
panel.setSize(400, 400); // JFrame arbitrary size.
panel.getContentPane().setLayout(null);
panel.setVisible(true);
int panelX = (panel.getWidth() - panel.getWidth() - panel.getInsets().left - panel.getInsets().right)/2;
panel.setLocation(panelX, 0);
코드를 사용하면 getContentPane();을 사용하려고하면 오류가 발생합니다. 는 (이 오류는 "방법 getContentPane()는 유형 JPanel의에 대한 정의되지"입니다.)
그리고 JPanel의 아래에, 나는 다음과 같은 코드의 또 다른 JPanel의 것 -
가BufferedImage titledImageFile = ImageIO.read(new File(IMAGE_PATH_TILED));
TiledImage test = new TiledImage(tiledImageFile);
public void paintComponent(Graphics g) {
int width = getWidth();
int height = getHeight();
int imageW = tileImage.getWidth(this);
int imageH = tileImage.getHeight(this);
// Tile the image to fill our area.
for (int x = 0; x < width; x += imageW) {
for (int y = 0; y < height; y += imageH) {
g.drawImage(tileImage, x, y, this);
}
}
}
희망이 내 질문입니다 명확한; 나는 이것을 올바른 방향으로 가고 있습니까, 아니면 제가해야 할 일이 있습니까? 또한 JFrame을 어떻게 작동시킬 수 있습니까?
마지막으로,이 질문에 대한 답변을 남겨두면 설명을 남겨 두어 나중에 문제가 발생하지 않도록 수정/예방할 수 있습니다.
1) * "JFrame에서 JPanel의 중심에 위치"* 1 Q & A를 검토하고'null '레이아웃을 사용하는 것에 근거하여 대답을 내려 봤습니다. 구성 요소를 가운데에 배치하는 가장 좋은 방법은 [이 대답] (http://stackoverflow.com/a/7181197/418556)을 참조하십시오. 2) 더 나은 도움을 위해 [SSCCE] (http://sscce.org/)를 게시하십시오 (예 : 링크 된 예). –
1). 이를 위해 무엇을 의미하는지 이해하고 BorderLayout 메서드를 사용합니다. 2). 자체 포함 된 예제를 얻으려고하면 프로젝트를 설정하는 방법이 지옥 같을 것입니다 ... 바라건대 다른 요구 사항을 충족합니다. 지금까지 도와 줘서 고마워! – Hathor