Olá pessoal, estou usando o método setDefaultLookAndFeelDecorated(true) do pacote javax.swing.JFrame. No entanto, estou querendo fazer o sequinte: tenho o frame principal, e supondo que o o usuário precise de ajuda (clicou no botão, que teoricamente seria o de ajuda) aí no caso irá aparecer a instancia da nova JFrame (tal como no código). Mas, quero que a nova instancia apareça com o método setDefaultLookAndFeelDecorated(true) para que o efeito visual fosse tal como aparecem as JInternalFrame.
Devo utilizar JInternalFrame para resolver isso? (acho que o código ficará maior). Mas, estou curioso pelo seguinte fato: clicando no botão irá instanciar a nova classe (a intância de JFrame com o método setDefaultLookAndFeelDecorated(true)) a primeira vez ela aparecerá normalmente com o visual default de uma JFrame, no entanto, após fecha-la e clicar novamente no botão o visual dela muda. Sendo assim, parece que o método só faz efeito apos fechado a primeira vez (sei que não é isso, mas está estranho). Alguém sabe o que está acontecendo?
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyJFrame extends JFrame implements ActionListener{
private JButton botao;
public MyJFrame() {
super("Main");
setLayout(new BorderLayout());
botao = new JButton();
add(botao,BorderLayout.EAST);
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.addActionListener(this);
}
public static void main(String []args){
new MyJFrame().setVisible(true);
}
@Override
public void actionPerformed(ActionEvent event) {
if(event.getSource().equals(botao)){
new HelpFrame().setVisible(true);
}
}
}
class HelpFrame extends JFrame{
public HelpFrame() {
super("Help");
setSize(300,300);
setDefaultLookAndFeelDecorated(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
