Bom, a resposta que dei acima é referente ao caso de seu JInternalFrame estar alocado em outra classe. Porém se estiver na mesma classe é só fazer
Sobre o moveToFront, isso seria usado no caso de você querer dar ênfase a janela em questão (como no MSNMessenger, quando alguém chama atenção), e moveToFront não é aplicavel a JInternalFrame, só a JFrame.
Outra coisa importante é que sim, é necessario dar setVisible no JInternalFrame =p
pois é Mitsukai… faz um tempo que fiz isso ae… e lembro que foi um problema funfar como eu queria… (tbm era mais iniciante)…
notei que era necessário o “jInternal.setSelected(true)” tbm, senao ele fica atras das telas que tem em frente… como quando se abre duas internal no mesmo jdesktop… o problema era esse e funfou como passei … o repaint nao lembro-me se precisa mesmo…
jopss
Recentemente tive esse problema, de querer por um internalFrame na frente das outras qdo acontecesse uma ação X, porém de tanto procurar acabei desistindo, e fiz uma “gambiarra” pra setar a internalFrame pra frente das demais: dei setVisible(false) e em seguida setVisible(true) na internalFrame… Bom, acho que não é uma boa pratica, mas funcionou do jeito que eu queria rs…
Mas na verdade esse setSelected eu nunca usei… Vou testar depois pra ver se faz a mesma coisa =D Porém, você não precisa usar isso qdo adciona a internalFrame no desktop, por que qdo é adcionada, ela já é settada afrente das demais.
estou no netbeans nao consigo abrir o internalframe. faço da seguinte maneira
inicio da classe
package teste2;
import javax.swing.JDesktopPane;
public class JFrame extends javax.swing.JFrame
{
final JDesktopPane desktop = new JDesktopPane();
public JFrame() {
initComponents();
evento para abrir o internalframe
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
NewJInternalFrame i = new NewJInternalFrame();
i.setVisible(true);
desktop.add(i);
i.setVisible(true);
getContentPane().add(desktop);
por ultimo o String args
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame jf = new JFrame();
jf.setVisible(true);