Jump to content
fBirD

setUndecorated(true)

Recommended Posts

fBirD

Boas... Tentei criar um JFrame e utilizei o setUndecorated(true). Tentei adicionar um painel mudando a cor a acrescentando uma borda, mas qnd adiciono ao JFrame fica como se nada tivesse feito... Se retirar o setUndecorated(true) já fica cm as definições que eu pretendo.

Problema é que eu queria sem as bordas a volta do JFrame... Alguma sugestão?

public final class Visual extends JFrame{

Visual(int i){
    super();
     this.setSize(350, 200);
   this.setUndecorated(true);
  //  this.pack();

    this.setVisible(true);
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
        JPanel p= new JPanel();
        JPanel venceu= new JPanel(new BorderLayout());
        venceu.setBackground(Color.white);
          p.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, new Color(51, 153, 204)));

           p.add(venceu);

        getContentPane().add(p);
    }

Acabei de resolver o assunto de cima ;)

OUTRA DUVIDA:

Esta JFrame é invocada por acçao de um botão que se encontra numa outra JFrame... clicando nesse Botao e aparecendo esta janela, como faço para que não consiga mexer em nada da JFrame que se encontra por baixo??

cumps

Share this post


Link to post
Share on other sites
Knitter

OUTRA DUVIDA:

Esta JFrame é invocada por acçao de um botão que se encontra numa outra JFrame... clicando nesse Botao e aparecendo esta janela, como faço para que não consiga mexer em nada da JFrame que se encontra por baixo??

Não usas uma JFrame mas sim uma JDialog, é para isso é que elas servem, JFrame só deve existir uma por aplicação, esta é a janela principal e representa a aplicação, não deves ter mais nenhuma. Se queres ter mais janelas usas JDialog.

Share this post


Link to post
Share on other sites
fBirD

Mas o objectivo era retirar a borda que essa janela tem ,sendo JFrame ou jDialog... é possivel configurar uma JDialog com JPanel com cores, imagens, da mesma forma que se faz com uma JFrame??

Share this post


Link to post
Share on other sites
Knitter

Uma JDialog tem funcionalidades semelhantes a uma JFrame mas não tem o peso de ser a janela principal da aplicação. Consegues fazer quase tudo numa JDialog a nível visual que consegues numa JFrame.

Share this post


Link to post
Share on other sites
Knitter

Além do setUndecorated deves usar também o setWindowDecorationStyle(JRootPane.PLAIN_DIALOG), este método é obtido através do getContentPane da JDialog. Ou então usar o setDefaultLookAndFeelDecorated(false).

Ex:

//Este deve ser feito na JFrame antes de invocares uma JDialog, é um método estático.
JDialog.setDefaultLookAndFeelDecorated(false);

//ou estes dois, que devem ser escritos dentro da JDialog, algures onde é feita a criação dos componentes
//e outras partes gráficas:
setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);

No entanto é algo que dependerá do Look-n-feel usado pela aplicação e que pode não funcionar. Tendo em conta que este tipo de alterações são dependentes do LaF existente e que está a ser usado, e na maioria dos casos dependem desse mesmo LaF suportar o pedido. Por exemplo, em OS X a margem de uma janela nunca desaparece, existe sempre uma zona de sombra, por muito que se tente remover.[/code]

Share this post


Link to post
Share on other sites
fBirD

nao funcionou :/

há pelo menos alguma forma de não permitir que se aumente o tamanho da JDialog?

Tentei na classe que extende JDialog fazer isto:

public GanhouPerdeu(Frame pai, String titulo) {
        super(pai, titulo, true);
        this.setLocation(pai.getX() + 100, pai.getY() + 100);
   

O problema é que na classe que invoco a classe GanhouPerdeu, nao consigo aceder directamente á Frame pai (chamada GuiPrincipal).

Neste caso, a classe onde invoco o GanhouPerdeu é a classe novoJogo que estende um JPanel e que esse já é invocado na Frame pai que é a GuiPrincipal

janelaFinalJogo = new GanhouPerdeu(GuiPrincipal,  "GANHOU");

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.