2013-12-08 10 views
0

JTabbedPane에 탭 중 하나에 JScrollPane을 만들려고합니다. 내가 생각이었다 일하는 것이 어떤 노력이 :JTabbedPane 내에 JScrollPane를 작성하려면 어떻게해야합니까?

pane.add("Main", mainGame);// These are my other tabs 
    pane.add("Upgrades", upgradeScreen); //the JTabbedPane 
    pane.add("Credits", creditsTab); 
    upgradeScreen.setLayout(null); //The null layout 
    lblMoney2.setBounds(10, 11, 277, 22); 
    upgradeScreen.add(lblMoney2); // A simple JLabel 
    scrollPane.add(upgradeScreen); //my JScrollPane 

창 내 JTabbedPane에이고 스크롤 내 JScrollPane의입니다. 이것은 단순히 내 upgradesScreen 탭을 제거했습니다. 나는 이것의 종류를 예상했지만 나는 무엇을 해야할지 몰랐다. 알아 내야 할 코드가 더 필요하다면 말해주세요. 그렇지 않으면 도움을 주셔서 감사합니다!

답변

2

대신 당신이 How to use ScrollPane 자세한 내용을 JScrollPane#setViewportView

체크 아웃 사용하려면, 우리에게 JScrollPane#add을하지 마십시오.

조언 - null 레이아웃을 사용하지 마십시오. 응용 프로그램이 여러 플랫폼에서 실행될 수있는 기능이 제한됩니다. 대신 레이아웃 관리자의 업무 방식에 대해 알아보십시오.

+0

+1 항상 내가 뭔가를 놓칠 것입니다 사람입니다. foooo ... – Sage

+0

@sage 그래,하지만 이중 부모 문제가 먼저 생겼어. +1); – MadProgrammer

+0

'JTextArea'의 다른 날, 답 중 하나에서 나는 그 소스를 파고 텍스트 영역보기를 발견했다. '\ r \ n'을 새로운 라인에 사용하지 마라. 그래서 실제로 당신의 경험은 정확했다. 사실, 나는 경험이 부족하다고 생각합니다. 그래서 가끔 내 대답이 완전히 잘못 될 수 있습니다. 어제 질문에 답하는 동안 마침내 주문을 되돌려 보았습니다. 나는 정확한 반환 명령을 알았지 만 여전히 역순으로 작성하여 완전히 잘못하였습니다. : ( – Sage

2

이것은 단순히 내 업그레이드 화면 탭을 제거한 것입니다. '

예, 구성 요소가 한 번에 두 개의 부모를 가질 수 없기 때문에 가능합니다. 먼저 upgradeScreenJTabbedPane에 추가 한 다음 JScrollPane에 다시 추가했습니다. 구성 요소의 add (구성 요소) 함수는 결국 addImpl(component) 함수를 호출합니다. 그러면 이전 부모에서 구성 요소가 제거되고 새 부모에 추가됩니다. 그러나

는 :

  1. 당신은 JTabbedPane 인스턴스에 JScrollPane를 추가해야합니다.
  2. 스크롤하고자하는 구성 요소는 setViewportView(component) 기능을 사용하여 JScrollPane의보기로 설정합니다. 귀하의 컨텍스트에 대한 것입니다 upgradeScreen