2012-09-17 7 views
0

전체 화면에 문제가 있습니다. 프레임을 만들고 전체 화면 창에 넣지 만 프레임의 배경색 만 볼뿐입니다.프레임이 전체 화면에 표시되지 않습니다.

PB frame = new PB(); 

win = new Window(frame); 

gs.setFullScreenWindow(win); 

frame.setVisible(true); 
frame.repaint(); 

win.repaint(); 

와 PB 클래스, 내 프레임 : 여기

내가 사용하는 코드입니다 그래서 내가 볼 수있는 모든

public class PB extends JFrame 
{ 
    PB() 
    { 
     super(); 
     this.setBackground(Color.BLUE); 
     this.getContentPane().add(new JButton("button")); 
     JPanel jp = new JPanel(); 
     jp.setBackground(Color.red); 
     jp.setSize(360, 200); 
     this.getContentPane().add(jp); 
     this.setVisible(true); 
     repaint(); 
     pack(); 
    } 
    @Override 
    public void paint(Graphics g) 
    { 
     Graphics2D g2d = (Graphics2D)g; 
     g2d.setPaint(new Color(0,0,0)); 
     g.fillRect(0,0,200,200); 
    } 
} 

, 배경 색상과 큰 화면 (여기에 파란색입니다); 모든 도움을 당신이 별도로 프레임을 시도하지 않았다 내기

+1

참고로 작업 [sscce] (http://sscce.org/)를 찾을 수 있습니다 (http://stackoverflow.com/a/7457102/230513). – trashgod

+0

프레임이 전체 화면으로 표시됩니다. 색상이있는 사각형 만 페인트하면됩니다. – brimborium

+0

대단히 감사합니다 !! sscce 구덩이에서 나를 꺼내 – IonOne

답변

3

에 대한

덕분에, 당신을 했습니까?

프레임 코드의이 부분 :

public void paint(Graphics g) 
{ 
    Graphics2D g2d = (Graphics2D)g; 
    g2d.setPaint(new Color(0,0,0)); 
    g.fillRect(0,0,200,200); 
} 

는 그것의 자신 만의 콘텐츠, 단지 색깔의 RECT 페인트주지 않을 것입니다.

그래서 내의 recomendations은 다음과 같습니다

  1. JFrame의의 페인트 메소드를 오버라이드 (override)하지 마십시오 - 그것은 완전하지 않고 프레임을 시도
  2. 그냥 설정의 주요 컨테이너 패널 배경 원하는 색상
  3. 에 많은 문제가 발생합니다 - 당신이 무엇을 필요로하는지 먼저 알기 위해 화면 창
+0

+1 '페인트'픽업 – MadProgrammer

+0

감사합니다! 좋은 충고 ... – IonOne

2

Window에 대한 "소유자"의 의도를 잘못 이해했다고 생각합니다.

JFrameWindow으로 확장됩니다.

그래서, 대신

win = new Window(frame); 
gs.setFullScreenWindow(win); 

을 말하는 당신은

gs.setFullScreenWindow(frame); 

아를 사용해야하고, 무엇을 Mikle도했다.

관련 문제