Seguinte, eu uso NetBeans e criei um JFrame com o nome de FramePrincipal onde coloquei meus componentes JMenu, JToolBar, JPanel etc…As janelas internas eu quero fazer com que sejam JInternalFrame, para que fiquem sobre o domino desse JFrame que criei. O problema eh que naum estou sacando como funciona.
Estou tentando fazer assim.
//classe Janela
public class Janela extends JInternalFrame{
private JDesktopPane desktop;
public Janela(){
super("Esta eh uma Janela com JInternalFrame");
desktop = new JDesktopPane();
this.setSize(800,600);
desktop.add(this);
desktop.setVisible(true);
}
}
// JFrame - FramePrincipal
private janelas = 0;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new Janela();
janelas++;
}
Não estou conseguindo fazer isso funcionar, ja olhei os Docs e exemplos do proprio Swing, porem ainda nao consegui fazer.
Como fazer com que minhas janelas abertas sejam internas ao frame principal ???
vc tem eu colocar isso la no frame principal, ou seja asssim
....
//Crie objeto do seu JInternalFrame;
JInternalFrame objSeuJInternalFrame = new JInternalFrame();
...
//no metodo construtor do seu JFrame coloque
desktop.add(objSeuJInternalFrame);
//Naverdade essa parte vc tem que colocar so quando for exibir seu JInternalFrame ou seja la nos eventos JMenuItem
desktop.setVisible(true);
opa ambuzr, eu fiz o teste e ainda nao consegui fazer funcionar.
fiz assim.
public class FramePrincipal extends javax.swing.JFrame {
JDesktopPane desktop;
TesteFrame tf = new TesteFrame();
public FramePrincipal() {
initComponents();
this.setExtendedState(MAXIMIZED_BOTH);
desktop = new JDesktopPane();
desktop.add(tf);
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
desktop.setVisible(true);
}
}
//classe do jinternalframe
public class TesteFrame extends JInternalFrame{
public TesteFrame(){
super("Minha Tela de Teste JInternalFrame");
this.setSize(200,200);
}
}
ublic class FramePrincipal extends javax.swing.JFrame {
JDesktopPane desktop;
TesteFrame tf = new TesteFrame();
public FramePrincipal() {
initComponents();
this.setExtendedState(MAXIMIZED_BOTH);
desktop = new JDesktopPane();
desktop.add(tf);
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
tf.setVisible(true);
}
}
//classe do jinternalframe
public class TesteFrame extends JInternalFrame{
public TesteFrame(){
super("Minha Tela de Teste JInternalFrame");
this.setSize(200,200);
}
}