다중 JFrame 사용 : 우수 또는 우수 사례? [닫은]


531

이미지를 표시하고 데이터베이스에서 사운드를 재생하는 응용 프로그램을 개발 중입니다. GUI에서 데이터베이스에 이미지를 추가하기 위해 별도의 JFrame을 사용할지 여부를 결정하려고합니다.

여러 JFrame 창을 사용하는 것이 좋은 방법인지 궁금합니다.


11
다중 모니터 설정을 대상으로하는 경우에만!
DNA

17
또한 이것은 언어에 구애받지 않으며 Java보다 사용자 인터페이스 와 관련 이 있다고 주장합니다 .
wchargin 2016 년

6
@WChargin에 동의합니다.이 질문은 내가 생각했던 것보다 더 가치있게되었습니다!
Peddler

1
초보자 (예 : 나 자신)는 일반적으로 여러 JFrame을 사용합니다. 아마도 CardLayout을 사용하는 것보다 기본 JFrame 내부에서 호출하는 것이 더 쉽기 때문일 것입니다. 경우에 따라서는 사용하지 않는 것이 좋습니다.
Hoodlum

디버깅은 선인장을 먹는 것과 같습니다. 이것은 권장되지 않습니다.
Taslim Oseni

답변:


447

여러 JFrame을 사용하는 것이 좋은 방법인지 궁금합니다.

나쁜 (나쁜, 나쁜) 연습.

  • 사용자에게 친숙하지 않음 : 사용자에게는 하나만 표시 될 때 작업 표시 줄에 여러 개의 아이콘이 표시됩니다. 또한 코딩 문제의 부작용 ..
  • 코딩하고 유지해야하는 악몽 :
    • 모달 대화는 그 대화의 내용에 대한 이벤트 초점주의에 쉽게 기회를 - 선택 / 수정 /이를 취소 한 후 진행합니다. 여러 프레임은 그렇지 않습니다.
    • 부모를 클릭하면 부모가있는 대화 상자 (또는 플로팅 도구 모음)가 맨 앞에 나타납니다. 원하는 동작 인 경우 프레임으로 구현해야합니다.

하나의 GUI에 많은 요소를 표시하는 방법에는 여러 가지가 있습니다.

  • CardLayout(짧은 데모. ). 좋은:
    1. 대화 상자와 같은 마법사 표시
    2. 연관된 구성 요소가있는 항목의 목록, 트리 등 선택 사항 표시
    3. 구성 요소가없는 것과 보이는 구성 요소 사이를 뒤집습니다.
  • JInternalFrame/JDesktopPane 일반적으로 MDI에 사용됩니다 .
  • JTabbedPane 구성 요소 그룹 용.
  • JSplitPane 하나 또는 다른 것 사이의 중요성 (크기)을 나타내는 두 가지 구성 요소를 표시하는 방법은 사용자의 활동에 따라 다릅니다.
  • JLayeredPane 훨씬 많은 ..layered 구성 요소.
  • JToolBar일반적으로 동작 또는 제어 그룹이 포함됩니다. GUI 주위를 드래그하거나 사용자 요구에 따라 완전히 끌 수 있습니다. 위에서 언급했듯이 부모에 따라 최소화 / 복원합니다.
  • 의 항목으로 JList(아래 간단한 예).
  • 의 노드로 JTree.
  • 중첩 된 레이아웃 .

그러나 이러한 전략이 특정 사용 사례에서 작동하지 않으면 다음을 시도하십시오. 단일 main JFrame을 설정 한 다음 프레임을 대화 상자의 부모로 사용하여 나머지 자유 부동 요소에 대해 JDialog또는 JOptionPane인스턴스가 표시되도록합니다.

많은 이미지

여러 요소가 이미지 인 경우 대신 다음 중 하나를 사용하는 것이 좋습니다.

  1. JLabel그 순간에 사용자가 관심있는 이미지를 표시 하는 단일 (스크롤 창 중앙) 에서 볼 수 있듯이 ImageViewer.
  2. 단일 행 JList. 이 답변 에서 볼 수 있듯이 . 그 '단일 행'부분은 모두 같은 치수 인 경우에만 작동합니다. 또는 이미지를 즉석에서 스케일링 할 준비가되어 있고 모두 동일한 종횡비 (예 : 4 : 3 또는 16 : 9) 인 경우.


4
@AndrewThompson 저는 여러 번 필요한 상황을 JFrame본 적이 없으며 설명해 주셔서 감사합니다.
Jeffrey

4
@ user417896 "그냥 달려요 ." 아닙니다. 김프를 사용했습니다. 끔찍하고 MDI가되어야합니다.
Andrew Thompson

4
@ryvantage "(Excel)은 MDI 여야합니까?" 좋은 질문. 나는 그것이 사용자에게 두 가지 방법으로 제공되어야한다고 생각합니다 (확실히 MDI 형식 뿐만 아니라 ). 예를 들면 다음과 같습니다. 1) 현재 TextPad를 사용하고 있으며 선택한 구성에 따라 별도의 인스턴스가 열리고 각 인스턴스는 목록에 표시된 여러 문서를 제공합니다. 2) 일반적으로 탭 모드에서 FF를 사용하지만 때로는 탭을 새 창으로 끌어 놓습니다. -예제의 공통 요소는 사용자 선택입니다. 앱을 제공하십시오. '그러나 사용자가 원하는'.
Andrew Thompson

12
@AndrewThompson 당신은 당신의 마지막 의견으로 자신의 주장에 반대했습니다. 당신의 주요 답변에서 이것은 나쁜 습관이며 절대로해서는 안된다고 말하지만, 위의 의견에서 때로는 SDI를 좋아한다고 말하며 사용자에게 선택권을 제공해야합니다. 확실히, 이것은 정확히 user417896이 위에서 말한 것입니다. 때에 따라 다르지. 이것은 동료 개발자에 대한 나의 가장 큰 애완 동물 증오 중 하나입니다. 그들 중 많은 사람들이 소위 '모범 사례'에 대해 종교적으로 광신적이라는 사실. 우리가 모두 '모범 사례'를 고수하고 광장 밖에서 생각하지 않았다면 오늘날 우리는 혁신적인 UI를 갖지 못할 것입니다.
DuncanKinnear

4
거대한 일반화! 사용자가 창을 개별적으로 제어하고 작업 표시 줄에서 개별적으로 창에 액세스하게하는 것은 항상 나쁘지 않습니다. 모범 사례는 모든 옵션을 알고 지능적으로 선택하는 것입니다. 여러 JFrame이 좋은 의미를 갖는 경우가 있습니다.
Dawood ibn Kareem

203

다중 JFrame접근 방식은 Swing 앱 프로그래밍을 시작한 이래 구현 한 것입니다. 대부분, 나는 더 잘 몰랐기 때문에 처음에 해냈습니다. 그러나 개발자로서의 경험과 지식이 성숙하고 훨씬 더 많은 Java 개발자의 의견을 온라인에서 읽고 흡수하기 시작 하면서 현재 프로젝트 및 향후 프로젝트 모두에서 다중 접근 방식 에서 벗어나 려고 JFrame했습니다. )만이 ... 내 고객으로부터 저항을 얻을 ! JInternalFrame별도의 구성 요소에 대한 "자식"창과 s 를 제어하기위한 모달 대화 상자를 구현 하기 시작하면서 고객이 불평하기 시작했습니다!내가 최선의 방법이라고 생각한 것을하고 있었기 때문에 나는 매우 놀랐다! 그러나 그들이 말하는 것처럼 "행복한 아내는 행복한 삶입니다." 고객도 마찬가지입니다. 물론 계약자이므로 최종 사용자가 개발자 인 나에게 직접 액세스 할 수 있습니다. 이는 일반적인 시나리오가 아닙니다.

그래서 저는 다중 JFrame접근 방식 의 장점과 다른 사람들이 제시 한 단점을 신화 적 으로 설명 할 것 입니다.

  1. JFrame뛰어난 레이아웃 유연성 -별도의을 허용함으로써 최종 사용자가 자신의 화면에있는 내용을 분산시키고 제어 할 수 있습니다. 이 개념은 "개방적"이고 비 제한적입니다. 당신은 하나의 큰 JFrame무리 로 갈 때 이것을 잃습니다 JInternalFrame.
  2. 매우 모듈화 된 응용 프로그램에 적합 -제 경우에는 대부분의 응용 프로그램이 서로간에 전혀 관련이없는 3-5 개의 큰 "모듈"을 가지고 있습니다. 예를 들어, 하나의 모듈은 영업 대시 보드이고 다른 하나는 회계 대시 보드 일 수 있습니다. 그들은 서로 또는 아무 말도하지 않습니다. 그러나 경영자는 두 가지를 모두 열어야 할 수도 있고 작업 표시 줄의 별도 프레임으로 인해 삶이 ​​더 쉬워졌습니다.
  3. 최종 사용자가 외부 자료를 쉽게 참조 할 수 있도록합니다 .-일단 다음 상황이 발생했습니다. 내 앱에 "데이터 뷰어"가있어 "새로 추가"를 클릭하면 데이터 입력 화면이 열립니다. 처음에는 둘 다 JFrames였습니다. 그러나 데이터 입력 화면 JDialog이 부모가 데이터 뷰어 인 사람이 되길 원했습니다 . 나는 변화를 만들어, 즉시 나는 그가 최소화하거나 닫을 수 있다는 사실에 크게 의존 최종 사용자로부터 전화 접수 뷰어 및 유지 편집기를 그가 프로그램의 다른 부분 (또는 웹 사이트, 나는 돈을 참조하면서 오픈 기억하지 마십시오). 그는입니다 하지 그가 제 할 항목 대화 상자를 필요로하므로, 다중 모니터에 뭔가 다른두 번째로, 데이터 뷰어가 완전히 숨겨져 있습니다. 이것은 불가능 JDialog했고 확실히 불가능 JInternalFrame했을 것입니다. 나는 JFrames그의 정신 을 위해 분리 된 것으로 다시 바꿨지 만, 그것은 중요한 교훈을 가르쳐주었습니다.
  4. 오해 : 코딩하기 어려움-이것은 내 경험에 해당되지 않습니다. 만들 수있는 쉬울 것 왜 표시되지 않습니다 JInternalFrame(A)보다를 JFrame. 사실, 내 경험상 JInternalFrames훨씬 적은 유연성을 제공합니다. 나는 JFrame실제로 잘 작동하는 내 앱에서 s 의 열기 및 닫기를 처리하는 체계적인 방법을 개발했습니다 . 프레임 코드 자체에서 프레임을 거의 완벽하게 제어합니다. 새로운 프레임의 생성, SwingWorker사용자 시도가 내 열어야 등, 두 번 모두를 엽니 경우 전면 프레임을 가져 / 복원, 해당 컨트롤을 배경 스레드와 EDT의 GUI 코드의 데이터 검색을이야 JFrame들입니다 공개 정적 메소드 open()와 공개 메소드를windowClosing() 이벤트는 나머지를 처리합니다 (프레임이 이미 열려 있습니까? 열려 있지는 않지만로드합니까? 등).이 접근법을 템플릿으로 만들었으므로 각 프레임에 대해 구현하기가 어렵지 않습니다.
  5. 오해 / 증명되지 않은 : 리소스가 많이 소모 됨 -이 추측에 대한 몇 가지 사실을 알고 싶습니다. 비록 100 초 를 열어도 JFrame더 많은 공간이 필요 하다고 말할 수 있지만 실제로 더 많은 리소스를 소비하고 있습니까? 리소스 때문에 메모리 누수가 걱정되는 경우 : 호출 하면 가비지 수집을 위해 프레임에서 사용하는 모든 리소스가 해제됩니다 (다시 말하면 정확히 동일한 우려를 불러야합니다).JInternalFrameJFramedispose()JInternalFrame

많이 썼는데 더 쓸 수있을 것 같은 느낌이 듭니다. 어쨌든, 나는 그것이 인기가없는 의견이기 때문에 단순히 투표를받지 않기를 바랍니다. 질문은 분명히 귀중한 것이며 일반적인 의견이 아닌 경우에도 귀중한 답변을 제공했으면합니다.

프레임 당 다중 프레임 / 단일 문서 ( SDI ) 대 단일 프레임 / 프레임 당 다중 문서 ( MDI )의 좋은 예는 Microsoft Excel입니다. 일부 MDI 혜택 :

  • 직사각형이 아닌 몇 개의 창을 가질 수 있으므로 다른 프로세스 (예 : 웹 브라우저)에서 데스크탑 또는 다른 창을 숨기지 않습니다.
  • 두 번째 Excel 창에서 쓰는 동안 하나의 Excel 창에서 다른 프로세스의 창을 열 수 있습니다. MDI를 사용하면 내부 창 중 하나에 쓰려고하면 전체 Excel 창에 초점을 맞추므로 다른 프로세스에서 창을 숨길 수 있습니다
  • 화면마다 다른 문서를 가질 수 있으며, 화면의 해상도가 같지 않을 때 특히 유용합니다

SDI (단일 문서 인터페이스, 즉 모든 창에는 단일 문서 만있을 수 있음) :

여기에 이미지 설명을 입력하십시오

MDI (여러 문서 인터페이스, 즉 모든 창에 여러 문서가있을 수 있음) :

여기에 이미지 설명을 입력하십시오


16
잘 생각해 서로 관련이없는 여러 모듈이있는 경우 별도의 응용 프로그램을 작성하지 않겠습니까? 또한 모달 대화 상자 를 사용해야한다는 제한이 없으며 모덜리스 대화 상자를 사용하여 두 번째 "프레임"으로 사용할 수 있습니다.
Jeffrey

매우 좋은 답변과 자세한 답변은 @kleopatra에 동의해야하지만 .. 사용자가 여러 화면 / 동일한 화면의 출력 데이터를 다른 입력과 비교하려는 백 개 이상의 화면이있는 응용 프로그램이있었습니다. 우리는 그렇게 할 수 있도록 맞춤형 윈도우 시스템을 구축했습니다. 사용자는 서로 옆에 계속 2 JFrames을 갖는 단지 더 편안하다고)
javatarz

나는 당신의 주장을 이해하지만, 나는 여전히 한 JFrame부모와 큰 부모 에게 모든 것을 갖는 것을 선호합니다 JTabbedPane. 그러나 레이아웃이 다를 수있는 두 번째 창 (또는 그 이상)을 열 수 있기 때문에 SDI 애호가들이 행복하고 MDI도 하이브리드 행동을 제공합니다. 모든 경우에, 나는 항상 JInternalFrame두 세계의 모든 불편 함을주는 끔찍한 패턴으로 간주 됩니다. 그들이 제공하는 유연성은 단지 짜증나고 실제 목적없이 많은 귀중한 화면 공간을 멀리 먹습니다.
기 illa 폴렛

SDI가 때때로 적절하고 사용자가 선호하는 데 동의합니다. 단점이 하나 더 있으며, 지금까지 그 해결 방법을 찾지 못했습니다. 각각 JFrame자체 작업 표시 줄 아이콘을 얻습니다. 때로는 이것이 정확히 원하는 것이지만 때로는 그렇지 않습니다. WinAPI에서는 구성이 쉽지만 Swing에서는 수행 할 수없는 것 같습니다.
Suma

이 경우 @suma 나는 JDialog이상을 선택한다고 생각 합니다 JFrame.
ryvantage

51

방금 관련된 예제와 함께 "사용자 친화적이지 않은"논증에 반대하고 싶습니다.

우리의 응용 프로그램에는 사용자가 다양한 '프로그램'을 별도의 탭으로 실행하는 기본 창이 있습니다. 가능한 한 많은 애플리케이션을이 단일 창에 유지하려고 노력했습니다.

그들이 실행하는 '프로그램'중 하나는 시스템에 의해 생성 된 보고서 목록을 제공하며, 사용자는 각 라인에서 아이콘을 클릭하여 보고서 뷰어 대화 상자를 열 수 있습니다. 이 뷰어는 보고서의 세로 / 가로 A4 페이지와 동일하게 표시되므로이 창을 좋아하는 사용자는 화면을 거의 채우면서 상당히 커집니다.

몇 달 전에 고객의 요청에 따라 이러한 보고서 뷰어 창을 모달리스로 만들었으므로 동시에 여러 보고서를 열 수있었습니다.

나는 이것이 좋은 해결책이라고 생각하지 않았기 때문에이 요청에 저항했습니다. 그러나 사용자가 시스템의 '결함'을 어떻게 극복하고 있는지 알게되면서 마음이 바뀌 었습니다.

'다른 이름으로 저장'기능을 사용하여 보고서를 특정 디렉토리에 PDF로 저장하고 Acrobat Reader를 사용하여 PDF 파일을 연 다음 뷰어와 동일한 방식으로 뷰어를 열었습니다. 보고자하는 다양한 보고서 출력으로 여러 개의 Acrobat Reader를 실행하고 있습니다.

그래서 나는 시청자를 무모하게 만들었습니다. 이는 각 뷰어에 작업 표시 줄 아이콘이 있음을 의미합니다.

지난 주에 최신 버전이 출시되었을 때, 그들로부터 압도적 인 반응은 그들이 그것을 좋아한다는 것입니다. 최근 가장 많이 개선 된 시스템 중 하나입니다.

따라서 사용자가 원하는 것이 나쁘다는 것을 사용자에게 알리지 만 궁극적으로는 그다지 좋아하지 않습니다.

몇 가지 참고 사항 :

  • 이 모덜리스 창에 JDialog를 사용하는 것이 가장 좋습니다.
  • ModalityType부울 modal인수가 아닌 new를 사용하는 생성자를 사용하십시오 . 이 대화 상자에 작업 표시 줄 아이콘이 표시됩니다.
  • 모덜리스 대화 상자의 경우 null 부모를 생성자에 전달하지만 '부모'창을 기준으로 찾습니다.
  • Windows의 Java 버전 6에는 버그 가 있으므로 기본 창을 알리지 않고 '항상 맨 위에'있을 수 있습니다. 이 문제를 해결하려면 버전 7로 업그레이드하십시오.

6
이것은 나의 경험이기도합니다. 내가 확신하는 한 가지가 있다면, 사람들이 사용자 친화적 인 것을 우회하여 실제로하고 싶은 일을하려고 할 때 잘못된 일을하고 있다는 것입니다. 기능은 왕입니다.
ryvantage

이 문제를 해결하는 한 가지 방법은 여러 JFrame을 열어 동일한 기능을 제공하지만 기본적으로 모든 것이 단일 창 내에서 수행되도록하는 것입니다. 이를 통해 사용자는 SDI 또는 MDI 중에서 선택할 수 있습니다.
기 illa 폴렛

죄송합니다? 솔루션을 조금 더 잘 설명해 주시겠습니까? 어떻게 하나의 창과 여러 개의 창이 될 수 있습니까? 기본 응용 프로그램이 실행되는 하나의 기본 창이 있지만 때로는 대화 상자를 열어야 할 수도 있고 때로는 사용자 요구 사항에 따라 대화 상자가 모덜리스 상태 여야합니다. 인터페이스가 이런 식이어야하거나 규칙적으로 자신을 위해 큰 구멍을 파고 갈 것입니다.
DuncanKinnear 1

1
@GuillaumePolet Duncan에 동의합니다. 조금 더 의미하는 것을 설명해 주시겠습니까? 나는 그의 혼란을 공유
Ungeheuer

그가 의미하는 바는 사용자가 애플리케이션의 여러 사본 ( 'JFrame')을 시작할 수 있지만 각각의 내부에서 SDI라고 생각합니다. 그러나 클라이언트 응용 프로그램은 매우 두꺼운 클라이언트이므로 리소스가 부족한 접근 방식입니다.
DuncanKinnear

20

jInternalFrame을 메인 프레임으로 만들어 보이지 않게하십시오. 그런 다음 추가 이벤트에 사용할 수 있습니다.

jInternalFrame.setSize(300,150);
jInternalFrame.setVisible(true);

19

내가 스윙을 만지는 마지막 시간이 지났지 만 일반적 으로이 작업을 수행하는 것은 나쁜 습관입니다. 염두에 두어야 할 주요 단점 중 일부는 다음과 같습니다.

  • 더 비쌉니다. Dialog 또는 JInternalFrame과 같은 다른 종류의 창 컨테이너와 같은 JFrame을 그리려면 더 많은 리소스를 할당해야합니다.

  • 사용자 친화적이지 않음 : 여러 JFrame을 함께 탐색하는 것은 쉽지 않습니다. 애플리케이션이 일관성이없고 디자인이 잘못된 애플리케이션 세트 인 것처럼 보입니다.

  • JInternalFrame을 사용하는 것은 쉽습니다. 이것은 일종의 레 토르 식입니다. 이제 우리가 이미 Desktop 및 JInternalFrame 패턴을 통해 생각했던 것보다 훨씬 쉽고 다른 사람들이 더 똑똑하고 (더 많은 여가 시간이 있음) 사용하는 것이 좋습니다.


7
여러 개를 사용할 때도 사용자에게 동일한 효과가 JInternalFrame있습니까? 개인적으로의 사용에 동의하지 않습니다 JInternalFrame! CardLayout진정한 축복입니다!
Branislav Lazic 2016 년

4
@ brano88에 동의합니다. JInternalFrame당신이 언급 한 세 가지 각 호의 어느 하나에 해당하는 경우에 제공 어떤 장점을 (1. 어디 증거입니다 JInternalFrame보다 가벼운 JFrame? 2. 귀하 JInternalFrame의 단지로의 무리로 / 혼란 / 붙어 서로를 어수선하게 할 수 JFrame의. 3. 얼마나 JInternalFrame쉽게? 그것은이다 하나를 제외하고 똑같은 코드는 포함되어 JDesktopPane하나는 자연의 화면 영역에 포함되어 그들은 나에게 똑같이 복잡한 소리)..
ryvantage

1
1. JFrame은 JInternalFrame과 비교하여 헤비급 구성 요소입니다. 2. 동시에 작동하는 수많은 창을 포함하는 앱을 본 적이 있습니까? 금융 애플리케이션에서도 IDE, 브라우저는 동일한 범위를 유지하는 것이 목표입니다. 3. JIF가 과거에 사용하기 매우 쉬운 것으로 나타
났으며

4
1. 이것에 대한 증거를보고 싶습니다. 둘 다 객체이고 둘 다 JComponents이며 둘 다 거의 동일한 구조를 가지고 있습니다 JDesktop. 다시 한번 죄송하지만, 귀하의 "무게"에 대해 추측하고 있다고 생각합니다 JFrame. 2. 내 응용 프로그램은 SDI를 사용하며 클라이언트는 매우 행복합니다. 그러나, 당신은 "많은 창문"이라고 말했는데, 물론 그것은 빨라질 것입니다. 하지만, 제 요점은 이것이다 : "톤" JInternalFrame의 그냥 나쁜로 빨아 것입니다! JIF를 통해 느슨한 UI 디자이너가 될 수 있다면 끔찍한 일입니다. 어수선한 혼란은 JF이든 JIF이든 어수선한 혼란입니다.
ryvantage

2
"물론 시나리오에 가장 적합한 구성 요소를 선택하십시오"
Necronet

10

확실히 나쁜 연습. 한 가지 이유는 모두 JFrame가 새로운 작업 표시 줄 아이콘을 표시 한다는 사실 때문에 '사용자 친화적'이 아니기 때문입니다 . 여러 개를 제어 JFrame하면 머리카락이 찢어집니다.

개인적으로, 나는 JFrame당신의 응용 프로그램에 ONE 을 사용할 것 입니다. 여러 가지를 표시하는 방법은 당신에게 달려 있습니다. CanvasES, JInternalFrame, CardLayout, 심지어는 JPanel아마도이야.

여러 JFrame 객체 = 통증, 문제 및 문제


9
흠 ... 받아 들여진 대답, afaics에 비해 새로운 것이 없습니까?
kleopatra

5
"모든 JFrame은 새로운 작업 표시 줄 아이콘을 보여줍니다"-이것은 Windows에서만 적용됩니다! Mac OS X에서는 열려있는 창 수에 관계없이 모든 응용 프로그램에 독 아이콘이 하나만 있으며 응용 프로그램에서 여러 개의 최상위 창을 갖는 것이 일반적입니다.
Rolf

8

여러 Jframes를 사용하는 것은 좋은 생각이 아니라고 생각합니다.

대신 우리는 JPanels JPanel에서 하나 이상을 사용할 수 있습니다 JFrame.

또한이 JPanels를 전환 할 수 있습니다 . 따라서에있는 것 이상을 자유롭게 표시 할 수 JFrame있습니다.

각각에 대해 JPanel서로 다른 것을 디자인 할 수 있으며이 모든 것을 JPanelJFrame번에 하나씩 표시 할 수 있습니다 .

이 사이를 전환하는 방법 JPanel의 사용 JMenuBar으로 JMenuItems각각 JPanel또는 'JButton를 for eachJPanel`.

둘 이상 JFrame은 좋은 습관이 아니지만 둘 이상을 원한다면 아무런 문제가 없습니다 JFrame.

그러나 JFrame여러 가지가 아닌 다른 요구에 맞게 변경하는 것이 좋습니다 JFrame.


5

프레임의 크기가 같으면 프레임을 만들고 프레임을 참조로 전달하지 않는 것이 좋습니다.

프레임을 통과하면 프레임을 채우는 방법을 결정할 수 있습니다. 그림 집합의 평균을 계산하는 방법을 갖는 것과 같습니다. 메소드를 반복해서 작성 하시겠습니까?


1
기본적으로 Cardlayout과 JTabbedPane이 수행 할 수있는 작업을 수행하지만, 역으로 수행하고 코드를 지나치게 복잡하게 만들면 동일한 작업을 수행하는 깨끗하고 쉬운 솔루션이 있습니다.
기 illa 폴렛 19

4

좋은 방법은 아니지만 사용하려는 경우에도 싱글 톤 패턴을 좋은 것으로 사용할 수 있습니다. 나는 대부분의 프로젝트에서 싱글 톤 패턴을 사용했다.


3
싱글 톤 패턴은 악몽입니다. 확장하려는 프로젝트는 모든 비용으로 싱글 톤 패턴을 피해야합니다.
기 illa 폴렛 19
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.