Olá…estou efetuando uma pesquisa onde vou fazer a comunicação do computador à um dispositivo eletrônico, como tv, videocassete/dvd player…o controle será feito a partir de um controle remoto desenvolvido em Java, usando porta USB…até ai tudo perfeito…mas eu queria que o visual de meu controle remoto não ficasse “quadrado”…gostaria de modelar a frame…deixar os cantos arredondados…etc…Alguém sabe como fazer isso? Teria que olhar no código fonte da JFrame e modifica-la? Vlw e flw
Design e forma de uma frame
15 Respostas
meu amigo, não conheço muito a respeito, mas isso você muda através dos LookandFeel, tem vários gratuitos por aí.
Dá uma pesquisada: LookandFeel
Se achar algo, comente aqui.
Então…look and feel muda apenas a aparência dos componentes…mas o formato mesmo de uma Frame eu nunca vi…porém, já vi aplicativos em outras linguagem com formatos bem diferentes…vou continuar a pesquisar, mas o mais provável é que eu tenha que olhar no código fonte de JFrame e tentar muda-la.
eae mano, tu descobriu como fazer isso? Tambem to interessado
Vlw.
tá faltando gente q sabe aqui nesse forúm 
o povo pede algo com jframe só fazem recomendar LAF sem nem ter usado ¬_¬
Vc pode utilizar uma imagem sobre o Frame caso vc queria algo mais artistico e colocar icones nos JButtons, assim vc pode ter um visual mais sofisticado e atraente.
Caso vc queria somente mudar a aparencia da aplicacao para parecer com Windows o Mac ai sim vc utiliza o LookAndFeel, nao tem misterio, nao tem segredo.
Na verdade, o que queria mesmo é mudar a forma. Look and Feel não muda a forma, só a aprência. E o que que tem a ver o LAF com isso?
Pois é.Eu vim atrás de informações sobre layouts do JFrame e só vejo o pessoal indicando LAF ¬¬
Look and Feel é aparência como Metal ou GtK
Pois é.Eu vim atrás de informações sobre layouts do JFrame e só vejo o pessoal indicando LAF ¬¬Look and Feel é aparência como Metal ou GtK
Tu quer saber sobre:
GridLayout
GridBagLayou
FlowLayout
BorderLayout
CardLayout
etc etc??
Vou procurar aqui nos maus favoritos alguns links interessantes e logo mais posto… Não estou na minha maquina no momento…
[]s
Olá.
Como vc já notou, o LaF vai mudar a forma dos componentes que são 100% Swing, ou seja, que não são amarrados diretamente ao sistema operacional. Por exemplo, um JButton é um componente “totalmente” escrito em Swing (conhecidos como componentes “peso leve”), sendo assim, a forma dele pode ser alterada.
O Java precisa utilizar alguns componentes do sistema operacional como base, por exemplo um JFrame. Esses componentes baseados nos componentes do SO não podem ser alterados simplesmente usando um LaF, pois isso é problema do SO e não do Java.
Outras linguagens podem alterar o layout de uma janela do windows ou do linux pois elas usam a API de janelamento do SO diretamente e não um kit de janelamento a parte como o swing.
Os componentes AWT são peso pesados, sendo assim, baseados (acho que todos, não tenho certeza) em componentes do SO. Se você conseguir encontrar um modo de alterar isso usando AWT e não swing talvez funcione, mas acho que talvez seja perda de tempo.
Você pode desenvolver sua GUI em outra linguagem e então usar algum método para comunicar com a camada da lógica da aplicação que vai ser feita em Java, como por exemplo usando JNI.
Tentei explicar de forma simples, mas existem muitos detalhes, não é algo tão simples.
Dê uma pesquisada sobre como o swing funciona para vc ter uma idéia melhor do que eu falei.
Até mais!
É disso mesmo que eu estava atrás.Muito obrigado,se puder posta os links ai 
Entao vc quer dizer q eh impossivel alterar o layout de um jframe via java? E o estilo delas pelo menos, eh possivel? Pq tem LAFs q fazem isso, como o metal, e alguns open source q acha ai na net, e nao me parece q eles fazem isso via outra linguagem. Uma das opcoes para alterar o layout de componentes q eu vi no forum foi usando o synth, muito bom e facil de usar, porem me pareceu um pouco limitado. Eu vejo projetos de lafs e vejo q so usam classes, e o synth usa um xml. Como poderia entao fazer o q esses lafs fazem?^Se eu conseguir alterar o jframe pelo menos como o laf lipstik q eh open source, eu ja tava satisfeito.
Acho que não me fiz entender...
Vc altera o layout dos componentes, mas uma janela, que é ligada diretamente ao SO vc não consegue alterar a barra de título, dexando ela arredondada por exemplo.
É quase o que você precisa... Tentei de toda forma deixar o fundo do JFrame invisível, mas não consegui... Precio pesquisar um pouco e fazer mais tentativas.. Enfim, olha ai o código... Vc vai ter que implementar o drag do JFrame, definindo áreas que podem ser clicadas e arrastadas.. Botão de fechar, etc...
/**
* @(#)Teste.java
*
*
* @author David Buzatto
* @version 1.00 2008/1/28
*/
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class Teste {
public static void main( String[] args ) {
MeuFrame f = new MeuFrame();
f.setSize( 300, 300 );
f.setVisible( true );
}
}
class MeuFrame extends JFrame {
public MeuFrame() {
setUndecorated( true );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
setBackground( new Color( 255, 255, 255, 0 ) );
add( new MeuPainel() );
}
}
class MeuPainel extends JPanel {
public MeuPainel() {
setBackground( new Color( 0, 0, 0, 0 ) );
}
protected void paintComponent( Graphics g ) {
super.paintComponent( g );
Graphics2D g2d = ( Graphics2D ) g;
g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON );
g2d.setColor( new Color( 200, 0, 0, 100 ) );
g2d.fill( new RoundRectangle2D.Double( 0, 0,
getParent().getWidth(), getParent().getHeight(),
20, 20 ) );
}
}
Até mais!
Quando disse “deixar a frame invisível”, não quis dizer “setVisible(false)”, mas siim somente a barra onde ficam os botões “fechar, maximizar e minimizar”. Faça isso usando, se estiver no construtor (classe derivada de um JFrame) “this.setUndecorated(false);”
Tu quer saber sobre:
GridLayout
GridBagLayout
FlowLayout
BorderLayout
CardLayout
etc etc??É disso mesmo que eu estava atrás.Muito obrigado,se puder posta os links ai ;)
Carma que meus favoritos estão um tanto que bagunçados… mas to postando…
Esse é simples e funcional:
http://www.macs.hw.ac.uk/guidebook/?name=Layouts&page=6
Esse é maneiro e tem muitas idéias interessantes:
http://www.java2s.com/Code/Java/Swing-JFC/Layout.htm
Algumas outras informações consegui em pedaços de apostilas, muito mau escritas.
Sou iniciante em programação e também em java, claro. Estou escrevendo uma aplicaçãozinha em Swing que tem JFrame, uma porrada de JPanels, Menu, Janelas de mensagens de erro, comunicação com sql2000 e etc…
Há uma pessoa me ajudando com esse projetinho didático e tem sido bem proveitoso.
No que puder ajudar, ou trocar idéias!!!
[]s
Oi pessoal acho que da para resolver com o look and feel.
Também estou pesquisando isso, mas achei algo interesante.
http://www-128.ibm.com/developerworks/java/library/j-iframe/