Alguém sabe como eu faço um JFrame sem borda (sem aqueles botõezinhos “minimizar”, “maximizar” e “fechar” )? Eu quero fazer uma telinha com o nome da minha aplicação, tipo aquela que aparece quando iniciamos o Eclipse, e que fica lá até que ele seja carregado por completo… Uma telinha sem nenhuma funcionalidade, que apenas salte na cara do usuário quando ele iniciar a aplicação, e que fique lá até ela ser carregada.
Talvez seja algo relacinado à [color=“orange”]JFrame.setDefaultLookAndFeelDecorated(true)[/color], e depois setar alguma propriedade…
Aqui no GUJ tem um artigo de como criar um Splash Screen.
B
BomBer_Rp
Seria um splash Scream
segue o codigo ai
importjava.awt.BorderLayout;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.Color;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt.GraphicsConfiguration;importjava.awt.Image;importjava.awt.MediaTracker;importjava.awt.Toolkit;importjava.awt.Window;importjava.awt.Cursor;/** * Criado em Domingo 05 de setembro as 18:03 pm * @author Luas*/publicclassSplashextendsWindow{// Mensagem a ser mostrada junto com a imagemprivatefinalStringmessage="Controle Portaria";// Imagem que ira aparecer no SplashprivatefinalStringimgName="splash_guj.jpg";ImagesplashImage;Toolkittoolkit;privatestaticSplashsplash;// Singleton pra garantir apenas uma unica instancia na memoriastatic{splash=newSplash();}privateSplash(){super(newFrame());System.out.println("Criando Splash()...");setVisible(false);splashImage=null;toolkit=Toolkit.getDefaultToolkit();}publicstaticSplashgetInstance(){returnsplash;}/** * Method initSplash. */privatevoidinitSplash(){// Carrega a imagem na memoriaMediaTrackermedia=newMediaTracker(this);splashImage=toolkit.getImage(imgName);if(splashImage!=null){media.addImage(splashImage,0);try{media.waitForID(0);}catch(InterruptedExceptionie){}}// Configura o tamanho do splash e a posicao na telasetSize(splashImage.getWidth(this),splashImage.getHeight(this));DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();Dimensionsize=getSize();if(size.width>screenSize.width)size.width=screenSize.width;if(size.height>screenSize.height)size.height=screenSize.height;setLocation((screenSize.width-size.width)/2,(screenSize.height-size.height)/2);setVisible(true);}publicvoidopenSplash(){setCursor(newCursor(Cursor.WAIT_CURSOR));initSplash();}publicvoidfinish(){setVisible(false);dispose();}publicvoidpaint(Graphicsg){// Apenas desenha a nossa mensagem em cima da imagemg.drawImage(splashImage,0,0,getBackground(),this);g.setFont(newFont("Arial",Font.BOLD,20));g.setColor(newColor(180,80,180));g.drawString(message,(int)(splashImage.getWidth(this)/2)-80,30);}}
Janela dos que tem um laço for que vai do 1 até 5000
ai abre seu programa
importjava.awt.BorderLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;classBotoesextendsJFrame{JButtonbotao;JFrameframe;JPanelpanel;/** * Construtor da aplicacao principal. * Simula um load demorado com um loop, para mostrar que * a tela Splash realmente aparece enquanto a aplicacao * principal eh carregada. * */publicBotoes(){for(inti=0;i<5000;i++)System.out.println(i);frame=newJFrame("Botoes");panel=newJPanel();panel.setLayout(newGridLayout(4,1));botao=newJButton("Aplicacao inicializada");botao.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){System.exit(0);}});panel.add(botao);frame.getContentPane().add(panel,BorderLayout.CENTER);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidinitApplication(){frame.pack();frame.setVisible(true);Splash.getInstance().finish();}}
Agora no seu programa
chame eles assim
public static void main(String args[])
{
Splash.getInstance().openSplash();
Botoes b = new Botoes();
b.initApplication();
ControlPortal application = new ControlPortal();
application.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
}
Ok
neofito
Valeuz, galera…
Por isso que eu gosto aqui do GUJ…
B
BomBer_Rp
private final String imgName = “splash_guj.jpg”;
aqui voce coloca a imagem que voce tem no seu computador