/ / Swing Frame para alterar o conteúdo - java, swing

Swing Frame para alterar o conteúdo - java, swing

Estou tendo dificuldade para criar telas diferentespara o usuário sem usar painéis de guias. No Netbeans, criei o Swing Frame e, depois que um usuário entra, como atualizar a página para que o conteúdo da tela seja substituído por outra tela ou JPanel ou JTabbedPanel? Devo criar no pacote da GUI, o Swing Frame principal e, em seguida, outros Swing Frames, para que o Swing Frame principal mostre conteúdo diferente, dependendo da ação do usuário, que possa usar quadros ou painéis de outros Swing Frames?

Respostas:

0 para resposta № 1

Aqui está uma solução possível:

  • Use classes múltiplas que estendem o JPanel, cada uma representando uma "fase" específica do aplicativo. Portanto, se você tiver uma tela de login e um menu principal, por exemplo, mantenha-os em duas classes separadas:

    classe pública LoginPanel estende o JPanel classe pública MainScreen estende JPanel

  • Para adicioná-lo ao JFrame, chame [setContentPane (Container contentPane)]. Nesse caso, seria: frame.setContentPane (novo LoginPanel)

  • Depois de validadas as credenciais do usuário, chame setContentPane () no quadro com uma nova instância MainScreen. Nota do javadoc:

Se você substituir o painel de conteúdo, é recomendável substituí-lo por um JComponent opaco.

Além disso, para definir o JFrame para o tamanho preferido do painel de conteúdo, chame frame.pack () depois de adicionar o novo conteúdo.

À medida que sua quantidade de JPanels diferentes cresce, éprovavelmente seria mais fácil ter um JPanel "titular" como o painel de conteúdo do JFrame sem propriedades e, em seguida, você pode simplesmente remover / adicionar a isso. Dessa forma, você pode manter componentes constantes que duram por todo o ciclo de vida do aplicativo, como JMenuBar no JFrame, sem ter que se preocupar em adicioná-lo ao JFrame a cada vez.

[1]: