Adicionar JTabbedPane em um JInternalFrame

boa noite pessoal, tem como adicionar um JTabbedPane em um JInternalFrame. Se possível postar alguns exemplos se tiver como acicionar.

vlw

É possível, sim. Sugestões:

  • Defina o Layout Manager do JInternalFrame como BorderLayout;
  • Adicione um JPanel ao JInternalFrame na posição BorderLayout.CENTER;
  • Adicione um JTabbedPane ao JPanel.

obrigado pela resposta, mas não consegui adicionar o JTabbedPane ao JPanel, esta dando erro e não aparece o JInternalFrame.

Talvez a listagem a seguir ajude:

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class Main {
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        // Define o look-and-feel
        try {
          UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception ex) {
          ex.printStackTrace();
        }

        // Inicia o frame principal
        iniciaFramePrincipal();
      }});
  }

  private static void iniciaFramePrincipal() {
    // Cria o frame principal
    JFrame frame = new JFrame("Frame Principal");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500, 500);
    frame.setLocation(50, 50);

    // Cria o desktop pane (para conter os frames internos) e define-o
    // como painel de conteúdo do frame principal
    JDesktopPane deskPane = new JDesktopPane();
    frame.setContentPane(deskPane);

    // Cria um frame interno
    JInternalFrame intFrame = new JInternalFrame("Frame Interno",
      true, true, true, true);
    intFrame.setSize(350, 350);
    deskPane.add(intFrame);
    intFrame.setLocation(50, 50);
    intFrame.setVisible(true);

    // Cria um painel e define-o como painel de conteúdo do frame interno
    JPanel painel = new JPanel();
    painel.setLayout(new BorderLayout());
    intFrame.setContentPane(painel);

    // Cria o tabbed pane e insere no painel do frame interno
    JTabbedPane tabPane = new JTabbedPane();
    painel.add(tabPane, BorderLayout.CENTER);

    // Cria painéis para inclusão no tabbed pane
    JPanel painelTab1 = new JPanel();
    painelTab1.setBackground(Color.RED);
    painelTab1.setName("Painel 1");
    tabPane.add(painelTab1);

    JPanel painelTab2 = new JPanel();
    painelTab2.setBackground(Color.BLUE);
    painelTab2.setName("Painel 2");
    tabPane.add(painelTab2);

    // Exibe o frame principal
    frame.setVisible(true);
  }
}

Eu estava fazendo coisa errada, agora esta funcionando. Muito obrigado, me ajudou muito!!!

vlw

mais uma pergunta…

como eu posso fazer para abrir só um JInternalFrame e não vários iguais??

obrigado desde já