Boa tarde;
Tem como criar uma Janela Maximizada sem cobrir a barra inferior?
Eu consigo criar, mas ela não maximiza totalmente;
Uso o seguinte código
public class JanelaPrincipal extends JFrame{
/**
*
*/
private static final long serialVersionUID = 6523847410354138038L;
Dimension d;
Insets in = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
public JanelaPrincipal(){
setLayout(new BorderLayout());
Toolkit tk = Toolkit.getDefaultToolkit();
d = tk.getScreenSize();
int height = d.height-(in.top + in.bottom);
setSize(d.width,height); //Tamanho
setLocation(0, 0); //Onde estará localizada na tela
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //O programa só encerra quando essa janela é fechada
setTitle("Titulo"); //Titulo
setResizable(false);
setVisible(true);
}
}
Desse modo a janela fica na altura sem cobrir a barra inferior da tela, mas não fica maximizada totalmente, fica aquela “fresta” no canto;
Agradeço ajuda;
Para maximizar um JFrame, não é preciso definir seu tamanho via JFrame.setSize(). O caminho correto é usar JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH).
http://stackoverflow.com/questions/5258207/how-to-maximize-a-jframe-thru-code
Acho que não me expressei muito bem;
Eu sei que tem o método para maximizar a Janela inteira;
Quando eu crio a Janela usando esse método que postei, o canto inferior da Janela fica acima da barra inferior (barra de ferramentas);
O problema é o canto superior direito, onde fica o “X” para fechar, ele fica com uma “fresta”;
Tem alguma modo de eu “maximizar” somente a parte de cima da Janela? Assim eu consigo alterar a altura dela, mas sem deixar de ter o aspecto “maximizado”?
Obrigado;
Talvez assim?
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class TesteSwing extends JFrame {
private void configuraFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(0, 0);
Rectangle rect = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getMaximumWindowBounds();
setSize((int) rect.getWidth(), (int) rect.getHeight());
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
TesteSwing frame = new TesteSwing();
frame.configuraFrame();
frame.setVisible(true);
}});
}
}
Com esse código a Janela ficou igual ao que eu tinha feito;
Ele ainda tem uma “fresta” no canto superior direito da Janela, se eu for com o mouse bem no canto superior direito e clicar, ele vai pra tela de trás ao invés de fechar a Janela;
Obrigado pela ajuda;
Até onde eu sei, infelizmente não há como maximizar uma janela apenas no sentido horizontal ou vertical (na plataforma Windows, pelo menos). Se a janela não for maximizada, a “fresta” sempre estará lá, não há saída.
Finalizando, a abordagem que mostrei não invade o espaço da barra de tarefas. O código que você mostrou em sua mensagem inicial ocupa a tela inteira, e supõe que a barra de tarefas pode estar apenas na base ou no topo do monitor, pois compensa apenas a altura. É preciso levar em conta também que a barra de tarefas pode estar nas laterais.
[quote=roger_rf]Até onde eu sei, infelizmente não há como maximizar uma janela apenas no sentido horizontal ou vertical (na plataforma Windows, pelo menos). Se a janela não for maximizada, a “fresta” sempre estará lá, não há saída.
Finalizando, a abordagem que mostrei não invade o espaço da barra de tarefas. O código que você mostrou em sua mensagem inicial ocupa a tela inteira, e supõe que a barra de tarefas pode estar apenas na base ou no topo do monitor, pois compensa apenas a altura. É preciso levar em conta também que a barra de tarefas pode estar nas laterais.[/quote]
Hum… entendi;
Muito obrigado pelo esclarecimento;