Porque que jbutton tem ações diferentes?

4 respostas
Thallysson

Olá, eu notei uma coisa em um programinha que eu estou fazendo, eu possuo um botão que tem uma ação de encerrar o programa, porém isso só acontece quando eu clico no texto dele, quando eu clico fora do texto não acontece nada, porque isso acontece?

4 Respostas

Chaybelucas

QUE? ueahuah
Fera, coloca teu código aqui, pra dar uma olhada

Thallysson

Meu código atual está assim `
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"));
 JButton sobre = new JButton("Sobre");
 ImageIcon log = new ImageIcon(getClass().getResource("/assets/Logo.png"));
 JLabel l = new JLabel(log);
 JPanel logo = new JPanel();
 JButton telainteira = new JButton();
 Button configuracoes = new JButton("Settings");
 JButton sair = new JButton("X");
 JButton novojogo = new JButton("New Game");
 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(){
  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));

try {
	UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
		| UnsupportedLookAndFeelException e) {
	e.printStackTrace();
}
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);

sair.addActionListener(this);
novojogo.addActionListener(this);
telainteira.addActionListener(this);
continuar.addActionListener(this);
configuracoes.addActionListener(this);
sobre.addActionListener(this);

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);
}

public void actionPerformed(ActionEvent evento) {
if(evento.getSource()==sair){
	System.exit(0);
}
}
public static void main(String[]args){
Indexmenu index = new Indexmenu();
 }
}

`

Chaybelucas

Creio que o sair.setBorderPainted(false) esteja causando isso
Os outros botões também estão tendo essa mesma reação?

Thallysson

Eu não adicionei ações a outros botoes mais quando eu clico no plano de fundo deles o texto fica selecionado como se eu estivesse clicado, mais creio que caso eu adicione ações vão acusar o mesmo problema pois tudo que eu fiz em um eu fiz nos outros, e eu usei este método para que não aparecesse aquelas bordas quando eu passar o mouse por cima, você tem outra alternativa?

Criado 5 de março de 2016
Ultima resposta 6 de mar. de 2016
Respostas 4
Participantes 2