2013-03-31 3 views
1

다음 코드를 고려하십시오JPanel을 확장하는 클래스에서 파일로드/저장을위한 메뉴 막대를 추가하는 방법은 무엇입니까?

/** 
* Main class 
* @author X2 
* 
*/ 
class DrawingPanel extends JPanel implements MouseListener, MouseMotionListener ,KeyListener 
{ 
    /** 
    * private variables 
    */ 

    // dimensions of the window 
    private static final long serialVersionUID = 1L; 
    private static final Dimension MIN_DIM = new Dimension(300, 300); 
    private static final Dimension PREF_DIM = new Dimension(500, 500); 


    /** 
    * Setting the dimensions of the window 
    */ 
    public Dimension getMinimumSize() { return MIN_DIM; } 

    public Dimension getPreferredSize() { return PREF_DIM; } 



    /** 
    * The constructor 
    */ 
    DrawingPanel() 
    { 
     super(); 
     addMouseListener(this); 
     addMouseMotionListener(this); 
     addKeyListener(this); 
     setFocusable(true); 
     requestFocusInWindow(); 
    } 

public void paintComponent(Graphics g) 
{ 
// code 
} 

public void mouseClicked(MouseEvent evt) 
{ // code 

} 

// more code 

어떻게 내가 개방 및 저장 파일에 대한 옵션을 필요로 내 창에 패널을 추가 할 수 있습니다.

는 순간 창은 다음과 같습니다 enter image description here

감사

답변

3

이 달려있다 (어떤 문제, 아마 방법 proepr 가능하지 않다).

당신은 NORTH 위치

문제는 다음 하위 구성 요소를 레이아웃 어떻게 내려 온다에서 JMenuBar을 배치하는 BorderLayout 사용할 수 있을까? 콘텐츠 창 한 종류의 필요한 것, 이것은 당신이 상위 구성 요소 계층 구조 또는 SwingUtilities.getWindowAncestorJFrame의 첫 번째 인스턴스를 찾을 수 SwingUtilities.getAncestorOfClass을 사용할 수,

대안 CENTRE 위치에있는 컨테이너에 대해 다른 레이아웃 매니저를 설정할 수있는 것 결과를 캐스팅하는 것이 좋습니다.

getAncestorOfClass를 사용하려고한다면, 당신은 setJMenuBar을 가지고 JRootPane의 인스턴스를 찾고 더 나을 것, 그것은 단지 나에게 발생

업데이트되었습니다. 메뉴 막대와 내용 창 (및 기타 항목)을 배치하는 것은 JRootPane의 책임입니다.

관련 문제