Qual é um contêiner de nível superior melhor para esse design, JFrame com Jpanels ou JDesktop com JInternalFrames

Eu sou um novato com Swing e AWT, estou olhando para construir uma interface gráfica usando o NetBeans. Minha GUI requer três áreas, que atualmente estou pensando como JPanels em um JFrame. Eu preciso de um painel "Desenho" que escute a entrada do mouse e desenhe formas Java2D. O painel de desenho será ancorado no canto superior esquerdo. As outras duas áreas são um painel de rolagem "Propriedades" e um painel de rolagem "Controlador". O painel do controlador determinará quais elementos desenhados serão exibidos por meio de botões e o painel de rolagem das propriedades mostrará detalhes sobre qualquer objeto de forma clicado no painel de desenho (pontos de extremidade, cores, etc.).

Um caso de uso típico para a área de desenho é tal que o primeiro clique na área de desenho será o primeiro conjunto de coordenadas para uma forma, ou seja, uma linha. Esse clique será capturado como um objeto point2d. O segundo clique será o segundo objeto point2D, e uma linha será construída entre os dois. A área do controlador terá botões como "Círculo" "Linha" "Elipse", etc. Dependendo do botão do controlador clicado, somente as formas desse tipo serão desenhadas na área de desenho. Os painéis de rolagem do controlador e das propriedades não serão móveis, eles serão bloqueados e redimensionados para os lados inferior e direito da GUI, respectivamente.

Como iniciante, estou lutando com os melhores componentes para usar. Eu tenho lido no JDesktop e JInternalFrame, mas parece que eu realmente não preciso de tudo isso. Um simples JFrame com três JPanels deve ser suficiente, certo? Mais especificamente, acho que preciso de um JFrame de nível superior, com um JPanel para o quadro de desenho e dois JScrollPanels. Preciso de um ouvinte de mouse no painel de desenho para capturar as coordenadas de cada clique e os ouvintes de cada botão no painel de controle. Posso colocar um ouvinte de mouse em um JPanel e desenhar formas Java2D nele, ou precisarei de um contêiner diferente (melhor?) Dentro do JPanel para fazer meu desenho?

questionAnswers(3)

yourAnswerToTheQuestion