Prezados;
Não entendi a diferença:
Assim funciona!
this.t1.getContentPane().setBackground(new Color(100,100,100));
Assim não funciona!
Color c = new Color(100);
this.t1.setBackground(c);
Agradeço desde já…
Prezados;
Não entendi a diferença:
Assim funciona!
this.t1.getContentPane().setBackground(new Color(100,100,100));
Assim não funciona!
Color c = new Color(100);
this.t1.setBackground(c);
Agradeço desde já…
E assim:
Color c = new Color(100, 100, 100);
this.t1.setBackground(c);
Também não…
Color c = new Color(100, 100, 100);
this.t1.setBackground(c);
Mas assim funciona!
Color c = new Color(100,100,100);
this.t1.getContentPane().setBackground(x);
Prezados;
Estou a bastante tempo com esta dúvida, peço uma dica, para progredir em meus estudos.
eh por causa do getContentPane();
provavelmente vc esta usando o JFrame (ou JPanel)…
vindo diretamente do “extends”…
entra esse comando serve pra vc “definir” de onde vem o painel a ser pintado…
eh assim q eu entendo q isso funciona na pratica …
se vc postar o codigo inteiro fica mais facil explicar o motivo…
O código é simples, pois o objetivo é entender o funcionamento.
[code]import javax.swing.*;
Class XTela_v001{
JFrame t1 = new JFrame();
void setBackground(int r,int g, int b){
Color x = new Color(r,g,b);
this.t1.setBackground(x);
}
void setSize(int x,int y){
this.setSize.(x,y);
}
void setVisible(boolean visible){
this.setVisible(visible);
}
}[/code]
O this.t1.setBackground(x) -> não funciona,ou melhor, não muda a cor
Se mudar para this.t1.getContentPane().setBackground(x) -> funciona.
Prezados;
Me de uma ajuda com relação as dúvidas apresentadas.
[code]import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
public class Main {
private JFrame t1;
private Color color;
public Main() {
t1 = new JFrame();
color = new Color(150, 100, 10);
t1.setSize(100, 100);
Container cp = t1.getContentPane();
cp.setBackground(color);
t1.setVisible(true);
t1.setDefaultCloseOperation(t1.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
Main main = new Main();
}
}[/code]
[quote=Daniel Ilha]Prezados;
Me de uma ajuda com relação as dúvidas apresentadas.[/quote]
Caríssimo! É como o colega alucardeck disse.
this.t1.setBackground(x) “não funciona” (Entre aspas porque funciona sim, não da forma como você esperava, mas funciona) porque t1 é um JFrame. Um JFrame já vem com um JPanel “embutido”, contido. É nesse JPanel que são inseridos os botões, caixas de texto, etc… Resumindo, é esse JPanel o que você efetivamente vê na tela. E o método getContentPane() te retorna exatamente esse JPanel. Por isso que this.t1.getContentPane().setBackground(x) funciona, por aqu aí você está colorindo o JPanel do seu JFrame, e não o JFrame em si.
Capisci?
Valeu pela explicação, pois estava a bastante tempo com esta dúvida.
Aproveito para perguntar.
O Conceito de tela o mais correto e usar JFrame ou JPane?
Um JPanel é algo pra ser utilizado dentro de um JFrame e dentro de outros JPanels. Lembre-se que o JFrame já vem com um JPanel de ínicio, e lembre-se que você pode trocar esse JPanel ao seu bel prazer!
Um outro tipo de tela é a JDialog, mais utilizada para a criação de janelinhas de diálogo, geralmente iniciadas a partir um JFrame (i.e.: Um botão que abre uma caixinha de diálogo com alguns campos a serem preenchidos).
Se vc souber ler em inglÊs, dê uma olhada nos links abaixo:
http://java.sun.com/docs/books/tutorial/index.html
http://java.sun.com/docs/books/tutorial/ui/index.html
http://java.sun.com/docs/books/tutorial/ui/features/components.html
http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html
http://java.sun.com/docs/books/tutorial/uiswing/components/panel.html
http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html
http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html
Valeu Mantu!!
Vou estudar os links mencionados.
Muito Obrigado mesmo!
x
so adicionando , como voce sabe cada pane tem varios pane “superiores” ate chegar ao root pane , entao vc acabar por ter que especificar qual deve ser mudado . da uma olhada em :
http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html
abracos