JInternalFrame maximizado

4 respostas
L

Alguém poderia me fornecer uma luz de como eu faço isso?
já me indicaram o setBounds (n consigui) e outras 300 coisas que o google me deu, mas não consigo realizar :confused:

Alguem por favor? :smiley:

4 Respostas

_

Voce procurou nos javadocs?

utilizou este método?

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JInternalFrame.html#setMaximum(boolean)

L

Tentei, da erro…
ele precisa estar dentro de um try catch
e o try cai na exceção qnd eu o chamo para o jdesktop

L

esta é a classe do menuPrincipal

package apresentacao;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class menuPrincipal extends JFrame  implements ActionListener{
JDesktopPane desktop = new JDesktopPane();
public static JFrame mn = new menuPrincipal();
JMenu arqMenu;
JMenuItem consulta, medico, paciente, ajuda;
JMenuBar barra;

public menuPrincipal() 
{
	setSize(0,0);
	setLocationRelativeTo(null);
	setResizable(true);
	setContentPane(desktop);
	setExtendedState(JFrame.MAXIMIZED_BOTH);


	arqMenu = new JMenu("Arquivo");
	arqMenu.setMnemonic('A');
	
	consulta = new JMenuItem("Consulta");
	consulta.setMnemonic('R');
	consulta.addActionListener(this);
	arqMenu.add(consulta);

	medico = new JMenuItem("Medico");
	medico.setMnemonic('M');
	medico.addActionListener(this);
	arqMenu.add(medico);

	paciente = new JMenuItem("Paciente");
	paciente.setMnemonic('M');
	paciente.addActionListener(this);
	arqMenu.add(paciente);
	
	barra = new JMenuBar();

	barra.setSize(500,20);
	barra.setLocation(0,0);
	barra.add(arqMenu);
	
	ajuda =  new JMenuItem("ajuda");
	ajuda.setMnemonic('M');
	ajuda.addActionListener(this);
	arqMenu.add(ajuda);
	
	
	getContentPane().setLayout(null);
	desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
	telaLoginInternal frame = new telaLoginInternal();
	try {
		frame = new telaLoginInternal();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	   getContentPane().add(barra);
	


	desktop.add(frame);

	frame.setVisible(true);
}

	public static void main(String[] args) throws Exception {
	
mn.show();

mn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menuPrincipal app =  new menuPrincipal();
app.addWindowListener
(
		new WindowAdapter() 
		{
			public void windowClosing (WindowEvent e)
			{
				System.exit(0);
			}
		}
);
	}

	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		if(arg0.getSource()==ajuda)
		{
			int w = getWidth(); 
		System.out.println(w);
		}
	}

}

e esta a do JInternalFrame:

package apresentacao;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.event.ChangeListener;
import javax.swing.text.MaskFormatter;

import negocios.TamanhoMaximo;
public class telaLoginInternal extends JInternalFrame implements ActionListener{
	JFormattedTextField txtLogin;
	JPasswordField txtSenha;
	JLabel labelSenha, labelLogin;
	static JButton botaoOk;
	JButton botaoSair;
	ImageIcon b1, b2;
	MaskFormatter teste;
	String tipo="", usuario="", senha="";
	static int openFrameCount = 0;
	static final int xOffset = 30, yOffset = 30;
	
	 
	public telaLoginInternal()
	{
		super("TelaLogin"+(++openFrameCount),true, true, true, true);
		setSize(400,220);

		//addPropertyChangeListener(IS_MAXIMUM_PROPERTY, null);
		setDefaultCloseOperation(JInternalFrame.EXIT_ON_CLOSE);

		setOpaque(true);
		try {
			setMaximum(true);
		} catch (PropertyVetoException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		labelLogin = new JLabel("Login:");
		labelLogin.setLocation(100,30);
		labelLogin.setSize(100,20);
		getContentPane().add(labelLogin);
		
		try {
            teste = new MaskFormatter("#,###,###.00");
        } catch (ParseException e) {
            // TODO Auto-generated catch block
         System.out.println("AAAA");
        }
        
        teste.setValidCharacters("[telefone removido]");
        txtLogin = new JFormattedTextField(teste);
        txtLogin.setComponentOrientation(java.awt.ComponentOrientation.RIGHT_TO_LEFT);
		txtLogin.setSize(140,20);
		txtLogin.setLocation(150,30);
		txtLogin.setCursor(new Cursor(Cursor.TEXT_CURSOR));  
		getContentPane().add(txtLogin);
		
		labelSenha = new JLabel("Senha");
		labelSenha.setSize(100,20);
		labelSenha.setLocation(100,60);
		getContentPane().add(labelSenha);
		
		txtSenha = new JPasswordField();
		txtSenha.setSize(140,20);
		txtSenha.setLocation(150,60);
		txtSenha.setCursor(new Cursor(Cursor.TEXT_CURSOR));  
		getContentPane().add(txtSenha);
		
		b1 = new ImageIcon("Login");
		botaoOk = new JButton("Login");
		botaoOk.setSize(100,60);
		botaoOk.setLocation(170,100);
		botaoOk.addActionListener(this);
		botaoOk.setCursor(new Cursor(Cursor.HAND_CURSOR));  
		getContentPane().add(botaoOk);
		 setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
		 setLayout(null);
	}


	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		if(arg0.getSource()==botaoOk){
	String DNS = "jdbc:odbc:bdtcc";
			
			try
			{
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				Connection conexao = DriverManager.getConnection(DNS);
				Statement st = conexao.createStatement();
				ResultSet rs = st.executeQuery("SELECT * FROM Usuario Where Login = '"+txtLogin.getText()+"' and Senha = '"+txtSenha.getText()+"'");
				rs.next();
				usuario = rs.getString("Login");
				senha = rs.getString("Senha");
				tipo = rs.getString("Usuario");
				conexao.close();
				
				if(tipo.equals("administrador")){
					System.out.println("porrrra");
				}else if(tipo.equals("comum"))
					System.out.println("A");
			
				//System.out.println(usuario+senha+usuario);
			}catch(SQLException ex)
			{
			System.out.println("Usuário ou Senha Inválidos!");
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

e este o erro que gera quando uso o setMaximum(true):

[color=red]Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
at apresentacao.telaLogin.actionPerformed(telaLogin.java:106)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at javax.swing.DefaultDesktopManager.maximizeFrame(Unknown Source)
at javax.swing.plaf.basic.BasicInternalFrameUI.maximizeFrame(Unknown Source)
at javax.swing.plaf.basic.BasicInternalFrameUI$Handler.propertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.awt.Component.firePropertyChange(Unknown Source)
at javax.swing.JInternalFrame.setMaximum(Unknown Source)
at apresentacao.telaLoginInternal.(telaLoginInternal.java:47)
at apresentacao.menuPrincipal.(menuPrincipal.java:63)
at apresentacao.menuPrincipal.(menuPrincipal.java:17)
... 26 more[/color]

W

Amigo, não sei se entendi bem, mas a quetão é apresentar o botão fechar “X” no JInternalFrame, ou maximizar a tela de login …, pois alterei seu codigo na seguinte linha e rodou…

Retirando…

try {   
        setMaximum(true);   
    } catch (PropertyVetoException e1) {   
        // TODO Auto-generated catch block   
        e1.printStackTrace();   
    }

Alterando para…
setMaximizable(true);
Dessa forma fica com o botão fechar “X” disponivel
Se quiser maximizar o JInternalFrame deve fazer isso apos inserir no Desktop, para isso altere o codigo menuPrincipal no trecho:

desktop.add(frame);   
    try {
	    frame.setMaximum(true);
	} catch (Exception e) {
		// TODO: handle exception
	}
    frame.setVisible(true);

Assim a tela de login vem maximizada, o que na minha opnião, fica muito feio, o ideal seria trazer modal de forma que o usuario não tenha acesso a tela abaixo…
Qualquer coisa posta aqui…

Criado 3 de dezembro de 2007
Ultima resposta 24 de jun. de 2008
Respostas 4
Participantes 3