[resolvido]resize, repaint... como aumentar o tamanho do jframe?

11 respostas
O

Aezz pessoal, pesquisei no forum, na sun mas ainda nao consegui aumentar o jframe atraves do actionevent em um botao.

resize + repaint.
repaint(0,0,500,400);
nao funcionaram.

postem algumas alternativas. T+

11 Respostas

J

O_M3_:
Aezz pessoal, pesquisei no forum, na sun mas ainda nao consegui aumentar o jframe atraves do actionevent em um botao.

resize + repaint.
repaint(0,0,500,400);
nao funcionaram.

postem algumas alternativas. T+


Se eu entendi bem você tem que colocar o seu “ouvinte de eventos” como uma classe interna (anonima ou não) e “amarrar o ouvinte” para ouvir eventos do botão. Ah jah ai me esquecendo, colocar no corpo do método que trata os eventos isso:

setSize( a, b ); // a e b são os dimensões do JFrame

Era isso O_M3_?¿

O

Veja, eu criei o jframe dentro do metodo constructor:

public class memoria extends JFrame implements ActionListener{
    private JButton abrir, reiniciar, bfacil, bmedio, mnivel;
    private JFrame frame;
    private JPanel panel, panelOpcoes, panelNivel, panelSuperior;

memoria(){
        frame = new JFrame();
        frame.setLayout(null);
        Container cn=frame.getContentPane();
  //      cn.setBackground(new java.awt.Color(0,204,255));
        cn.setBackground(new java.awt.Color(0,204,255));
//        frame.setBackground(new java.awt.Color(0,204,255));
        frame.isOpaque();
        frame.setTitle("Jogo da Memória - Beta");
          frame.setSize(575,500);
        //----
              ///------
        panelOpcoes=new JPanel();
        panelOpcoes.setBackground(new java.awt.Color(0,204,255));
        panelOpcoes.setOpaque(true);
        panelOpcoes.setLayout(null);
        panelOpcoes.setBounds(0,10,200,30);
        panelOpcoes.setVisible(true);
frame.add(panelOpcoes);
        ////////
        
        abrir=new JButton("abrir");
        abrir.setName("abrir");
        abrir.setBounds(5,0,80,28);
        abrir.addActionListener(this);
        panelOpcoes.add(abrir);
               
         JFrame.setDefaultLookAndFeelDecorated(true);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
//////////
if(e.getSource().equals(abrir)){
             frame.setSize(frame.getWidth(),600);
//ou frame.resize(frame.getWidth(),600);

             frame.repaint();
}
}

Ao clicar em abrir gostaria que redimenssionasse.

A

ja usou um .pack() no hora de redimensionar ?? ou tem que ser um tamanho definido ?

O

é, precisa ser tamanho especifico.

A

Então tenta assim…

da um repaint e em seguida, da o setSize…e repaint denovo…

O

Olá zopo, foi o que eu tentei fazer e ate postei acima o codigo.
;S

A

Cara eh que hoje, to meio puxado…

Mas se ngm responder até amanhã a noite… eu coloco um código aqui com um que funcione !

O

ok, mas se tiver um tempo ainda hj, dar uma força postando. Me encalhei nessa parte.

Abraço

A

Ai..consegui fazer aqui rapidinho...da uma olhada...só colar e compilar...

Frame.java

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class Frame extends JFrame
{
	JInternalFrame frame;
	public Frame()
	{
		super( "Exemplo de Frames Internos" );
		JMenuBar barra = new JMenuBar();
		JMenu adicionar = new JMenu( "Adicionar" );
		JMenuItem janela = new JMenuItem( "Frame Interno" );

		adicionar.add( janela );
		barra.add( adicionar );
		setJMenuBar( barra );

		final JDesktopPane desk = new JDesktopPane();
		getContentPane().add( desk );

		janela.addActionListener( new ActionListener() {// encurta o código e cria uma classe anonima
			public void actionPerformed( ActionEvent e )
			{//                          Paramenros -    ("Titulo", Redimensionar, Feha, Minimizar, Maximiza);
				frame = new JInternalFrame( "Janela Interna", true, true, true, true );
				
				Container cont = frame.getContentPane();
				cont.setLayout( new BorderLayout() );
				
				JPanel panel=new JPanel();
				panel.setLayout(new FlowLayout());
				
				JButton botao=new JButton (">>> Preencher <<<");
					botao.addActionListener( new ActionListener() {
						public void actionPerformed( ActionEvent e ){	
							frame.setSize( 500, 400 );
						}
				});
				
				panel.add(botao);
				cont.add(panel, BorderLayout.CENTER);
				frame.setResizable(true);
				frame.setVisible( true );
				//MeuFrame painel = new MeuFrame();
				frame.setSize( 250, 250 );
				frame.setOpaque( true );//Transparência
				desk.add( frame );
			}
		}
		);

		setSize( 500, 400 );
		this.setVisible(true);
	}

	public static void main( String a[] )
	{
		Frame in = new Frame();

		in.addWindowListener( new WindowAdapter() {
			public void windowClosing( WindowEvent e )
			{
				System.exit( 0 );
			}
		}
		);
	}
}
O

Esse exemplo funcionou perfeito com o JInternalFrame, porem nao faz o mesmo para redimensionar o JFrame. Obrigado pelas tentativas zopo, continuo aqui tentando, qualquer coisa diz aí

O
resolviif(e.getSource().equals(abrir)){

frame.setSize(frame.getWidth(),600);

frame.repaint();

}
Criado 31 de julho de 2005
Ultima resposta 31 de jul. de 2005
Respostas 11
Participantes 3