Olá, eu gostaria de esclarecer uma dúvida neste tópico, eu possuo uma jframe, nela existe um botão chamado fullscreen e então eu gostaria de que quando esse botão fosse clicado ele fizesse isso setUndecorated(true) porém como no construtor da classe que estende de jframe eu crio a janela e uso setVisible(true) ele lança uma exceção dizendo que a janela está sendo exibida, eu já tentei ocultar a janela no action performed porém não funcionou, alguém pode me ajudar?
Como retiro as bordas ao clique do botão?
10 Respostas
Cara…
Ao clique do botão, tenta mudar o tamanho.
int largura = (int) Toolkit.getDefaultToolkit.getScreenSize.getWidth();
int altura = (int) Toolkit.getDefaultToolkit.getScreenSize.getHeigth();
seuFrame.setBounds(0,0,largura,altura);
seuFrame.setUndecorated(true);
seuFrame.setVisible(true); // tenta não colocar o setVisible(true) pra ver no que dá também.
O eclipse está dizendo isso getDefaultToolkit cannot be resolved or is not a field no getDefaultToolkit, o que eu faço?
<strong>Eu tentei assim</strong>
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
this.setBounds(0,0,d.width,d.height);
this.setUndecorated(true);
this.setVisible(true);
<strong>mais ele largou a exceção novamente</strong>
public static final int largura = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
public static final int altura = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
Copia e cola issae. Uso isso constantemente no meus códigos, até deixei como Constantes.
<strong>Ele redimensiona a janela mais não retira as bordas e aparece isso</strong>
Exception in thread “AWT-EventQueue-0” java.awt.IllegalComponentStateException: The frame is displayable.
at java.awt.Frame.setUndecorated(Unknown Source)
at Pacote.Indexmenu.actionPerformed(Indexmenu.java:336)
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.AWTEventMulticaster.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.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(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)
Manda teu código ae
Meu código é esse:
`
package Pacote;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import com.towel.swing.img.JImagePanel;
public class Indexmenu extends JFrame implements ActionListener{
JButton som = new JButton();
ImageIcon iconetelainteira = new ImageIcon(getClass().getResource("/Assets/fullscreenbutton.png"));
static JButton sobre = new JButton("Sobre");
ImageIcon log = new ImageIcon(getClass().getResource("/assets/Logo.png"));
JLabel l = new JLabel(log);
JPanel logo = new JPanel();
static JButton telainteira = new JButton();
static JButton configuracoes = new JButton("Settings");
static JButton sair = new JButton("X");
static JButton novojogo = new JButton("New Game");
static JButton continuar = new JButton("Load created game");
JPanel cima = new JPanel();
JPanel botoes = new JPanel();
JPanel jogo = new JPanel();
BorderLayout layout = new BorderLayout();
FlowLayout layoutdois = new FlowLayout();
GridLayout layouttres = new GridLayout(5,0,10,10);
ArrayList<Color> cores = new ArrayList<Color>();
Font fonte = new Font("Comic Sans MS",Font.BOLD,30);
Font fontedois = new Font("Comic Sans MS",Font.BOLD,20);
JButton importar = new JButton("Import Assets");
Indexmenu(){
new Actions();
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
Toolkit kit = Toolkit.getDefaultToolkit();
Image image = kit.createImage(getClass().getResource("/Assets/Cursor3.png"));
Point point = new Point(0,0); //
String nameCursor = "Image Cursor";
Cursor cursor = kit.createCustomCursor(image, point, nameCursor);
jogo.setCursor(cursor);
cores.add(new Color(255,255,0));
cores.add(new Color(255,0,0));
cores.add(new Color(0,255,0))
setTitle("I am Shinobi Game");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
log.setImage(log.getImage().getScaledInstance(log.getIconWidth()-250,log.getIconHeight()-250, Image.SCALE_DEFAULT));
logo.add(l);
sair.setBorderPainted(false);
novojogo.setBorderPainted(false);
continuar.setBorderPainted(false);
configuracoes.setBorderPainted(false);
sobre.setBorderPainted(false);
telainteira.setContentAreaFilled(false);
telainteira.setBorderPainted(false);
importar.setBorderPainted(false);
som.setBorderPainted(false);
jogo.setLayout(layout);
jogo.add(cima,layout.NORTH);
jogo.add(logo,layout.CENTER);
jogo.add(botoes, layout.SOUTH);
novojogo.setFont(fonte);
continuar.setFont(fonte);
configuracoes.setFont(fonte);
sobre.setFont(fonte);
sair.setFont(fontedois);
importar.setFont(fontedois);
cima.setLayout(layoutdois);
cima.add(importar);
cima.add(som);
cima.add(telainteira);
cima.add(sair);
sair.setBackground(cores.get(1));
importar.setBackground(cores.get(1));
botoes.setLayout(layouttres);
botoes.add(novojogo);
novojogo.setBackground(cores.get(1));
botoes.add(continuar);
continuar.setBackground(cores.get(1));
botoes.add(configuracoes);
configuracoes.setBackground(cores.get(1));
botoes.add(sobre);
sobre.setBackground(cores.get(1));
botoes.setBorder(new EmptyBorder(0,400,0,400));
layoutdois.setAlignment(FlowLayout.RIGHT);
add(jogo);
novojogo.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
novojogo.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
novojogo.setSize(novojogo.getWidth()-10,novojogo.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
novojogo.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(novojogo.getWidth(),novojogo.getHeight());
novojogo.setSize(novojogo.getWidth()+5,novojogo.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
continuar.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
continuar.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
continuar.setSize(continuar.getWidth()-10,continuar.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
continuar.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(continuar.getWidth(),continuar.getHeight());
continuar.setSize(continuar.getWidth()+5,continuar.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
configuracoes.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
configuracoes.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
configuracoes.setSize(configuracoes.getWidth()-10,configuracoes.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
configuracoes.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(configuracoes.getWidth(),configuracoes.getHeight());
configuracoes.setSize(configuracoes.getWidth()+5,configuracoes.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
sobre.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
sobre.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
sobre.setSize(sobre.getWidth()-10,sobre.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
sobre.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(sobre.getWidth(),sobre.getHeight());
sobre.setSize(sobre.getWidth()+5,sobre.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
telainteira.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
telainteira.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
telainteira.setSize(telainteira.getWidth()-10,telainteira.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
telainteira.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(telainteira.getWidth(),telainteira.getHeight());
telainteira.setSize(telainteira.getWidth(),telainteira.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
sair.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
sair.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
sair.setSize(sair.getWidth()-10,sair.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
sair.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(sair.getWidth(),sair.getHeight());
sair.setSize(sair.getWidth(),sair.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
importar.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
importar.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
importar.setSize(importar.getWidth()-10,importar.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
importar.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(importar.getWidth(),importar.getHeight());
importar.setSize(importar.getWidth(),importar.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
som.addMouseListener(new MouseListener(){
Dimension dn = new Dimension(0,0);
public void mouseReleased(MouseEvent arg0) {
som.setSize(dn);
}
public void mousePressed(MouseEvent arg0) {
if(som.getIcon().toString().contains("/Assets/sound-buttonoff.png")){
som.setIcon(new ImageIcon(getClass().getResource("/Assets/sound-button.png")));
}else if(som.getIcon().toString().contains("/Assets/sound-button.png")){
som.setIcon(new ImageIcon(getClass().getResource("/Assets/sound-buttonoff.png")));
}
som.setSize(som.getWidth()-10,som.getHeight()-10);
}
public void mouseExited(MouseEvent arg0) {
som.setSize(dn);
}
public void mouseEntered(MouseEvent arg0) {
dn = new Dimension(som.getWidth(),som.getHeight());
som.setSize(som.getWidth(),som.getHeight()+5);
}
public void mouseClicked(MouseEvent arg0) {
}
});
som.setIcon(new ImageIcon(getClass().getResource("/Assets/sound-button.png")));
iconetelainteira.setImage(iconetelainteira.getImage().getScaledInstance(iconetelainteira.getIconWidth()-60,iconetelainteira.getIconHeight()-60, Image.SCALE_DEFAULT));
telainteira.setIcon(iconetelainteira);
telainteira.addActionListener(this);
}
public static void main(String[]args){
Indexmenu index = new Indexmenu();
}
public void actionPerformed(ActionEvent evento) {
if(evento.getSource()==telainteira){
}
}
}
`
Boa noite!
Cara, depois de muito pesquisar e tentar MESMO… Fiz o seu codigo, mas de forma simples, pra eu testar aqui. Consegui fazer, eu acho que da forma que ce quis… Dá uma olhada ae
package pacote;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Indexmenu implements ActionListener{
public static void main(String[]args ) {
JFrame tela = new JFrame();
JButton bt = new JButton("Click me");
tela.setBounds(100,100,500,500);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tela.setLayout(null);
bt.setBounds(20,20,100,30);
bt.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Aqui o que fiz pra dar certo AQUI. Testa ae bro
tela.dispose();
tela.setUndecorated(true);
tela.setVisible(true);
}
});
tela.add(bt);
tela.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}
Note que eu dei tela.dispose(), logo depois dei undecorated e depois visible(true). Nesta ordem, la dentro do evento do botao. Tenta isso ai, dentro do evento do teu botao… Testei aqui e funcionou bacana.
Muito obrigado! Você me ajudou muito 
De nada. Precisando, estamos aqui !