JButton ajude me

17 respostas
izaelcio

Ola pessoal

eu tenho um grande problema pra mim, espero que possam me ajudar.

Bom tenho 5 botao cada um com uma cor e o nome da cor, um no em cima outro no centro outro embaixo e um de cada lado, porem todos ocupa todo o meu layout,
ate ai blz, porem meu professor pediu para que eu transferisse tudo que ta em um motao para o outro, ou seja oque esta no botao do centro a cor e o nome fosse movido para o
botao de baixo, sendo assim o que estava no botao de baixo ele passa para o botao do centro e oque estava no botao do centro ele passa para baixo.

isso eu nao consigo fazer ja tem uma semana que estou quebrando a cabeca e agora ja estou pedindo clemencia, por favor alguem me ajude

desde ja agradeco!!

17 Respostas

J

você tem o exercício?

Anime

Oi,

O que vc já fez… Não usou nenhum IDE para criar os botões, tem que fazer na mão mesmo…

izaelcio

vo mandar oque eu fiz pra vcs darem uma olhada
to comecando agora a aprender java, porem to mais perdido que cego em tiroteio…

preciso muito de ajuda!! vale nota para amanha tenho que aprensentar o trabalho

import javax.swing.<em>;

import java.awt.</em>;
public class Java extends JFrame{

public Java(){

super(O gerenciador de layout BorderLayout);
Container tela = getContentPane();

BorderLayout layout = new BorderLayout();
tela.setLayout(layout);

JButton bt1 = new JButton("Verde");
bt1.setBackground(Color.green);
JButton bt2 = new JButton("Amarelo");
bt2.setBackground(Color.yellow);
JButton bt3 = new JButton("Azul");
bt3.setBackground(Color.blue);  
JButton bt4 = new JButton("Vermelho");
bt4.setBackground(Color.red);
JButton bt5 = new JButton("Rosa");
bt5.setBackground(Color.pink);

tela.add(BorderLayout.CENTER, bt1);
tela.add(BorderLayout.NORTH, bt2);
tela.add(BorderLayout.SOUTH, bt3);
tela.add(BorderLayout.EAST, bt4);
tela.add(BorderLayout.WEST, bt5);

setSize(300, 150);
setVisible(true);

}

public static void main(String args[]){

Java app = new Java();

app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}
izaelcio

foi a unica coisa que consegui fazer, agora tenho que fazer os botoes so trocarem com tudo que a dentro dele ou seja a cor e o seu nome!!

ViniGodoy

Ao postar códigos, por favor, use a tag code:
http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

Também lembre-se que o fórum correto para dúvidas de interface gráfica é o “interface gráfica” e não o “java básico”. Leia atentamente a descrição dos fóruns antes de postar.
Vou mover esse tópico para lá.

Acho que a forma mais fácil de fazer isso é criar um array de cores, um array de textos.

Color cores[] = {Color.GREEN, Color.YELLOW, Color.BLUE, Color.RED, Color.PINK}; String nomeCores[] = {"Verde", "Amarelo", "Azul", "Vermelho", "Rosa"};

Em seguida, crie uma variável para o offset atual desse Array (ou seja, o valor dela for 0, a primeira cor do primeiro botão será azul. Se for 1, será o amarelo, etc).

Em seguida, crie um listener que altere a cor dos botões, baseado no índice do botão e no offset:

public class MudaCorListener implements ActionListener { private void mudarCorBotao(JButton btn, int indice) { int index = (indice + offset) % cores.length; btn.setText(nomeCores[index]); btn.setBackground(cores[index]); } @Override public void actionPerformed(ActionEvent evt) { int index = (indice + offset) % cores.length; mudaCorBotao(btn1, 0); mudaCorBotao(btn2, 1); mudaCorBotao(btn3, 2); mudaCorBotao(btn4, 3); mudaCorBotao(btn5, 4); offset++; } }

Finalmente, registre listeners desse tipo em seus botões:

MudaCorListener listener = new MudaCorListener(); bt1.addActionListener(listener); bt2.addActionListener(listener); bt3.addActionListener(listener); bt4.addActionListener(listener); bt5.addActionListener(listener);

izaelcio

Fantastico… obrigado… e me desculpe pela confusao!!

ViniGodoy

Fiz algumas correções no código ali em cima, pois o anterior só mudaria a cor do botão que tivesse sido clicado.
O código pode ficar mais curto se você criar os seus botões também dentro de um array.

izaelcio

como disse, o meu conhecimento é bem limitado, desculpe se eu fizer uma pergunta muito ignorante, mas ha diferenca no codigo do eclipse para o codigo do netbeans??

ViniGodoy

Não. O código que você escreve será sempre código Java.

Eclipse e Netbeans são apenas dois editores de texto (como o Word é um editor de texto, para a linguagem “Português”).
São editores poderosos, com muitas ferramentas integradas, mas não passam disso.

izaelcio

Obrigado!!

izaelcio

aceito mais sujestao de como pode ser feito!!!

ViniGodoy

Por que, não funcionou?

izaelcio

acredito que foi eu que ainda nao consegui fazer funcionar :oops:

ViniGodoy

Onde você esteve durante as aulas?

Aí vai um exemplo. Trate de estudar, isso é bem básico. Jogos exigem bastante conhecimento em interface gráfica e lógica.
Muito mais do que isso:

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Java extends JFrame {
	private JButton btn[] = new JButton[5];
    private Color cores[] = {Color.GREEN, Color.YELLOW, Color.BLUE, Color.RED, Color.PINK};  
    private String nomeCores[] = {&quot;Verde&quot;, &quot;Amarelo&quot;, &quot;Azul&quot;, &quot;Vermelho&quot;, &quot;Rosa&quot;};
    private int offset = 0;
    
    public Java() {
		super(&quot;O gerenciador de layout BorderLayout&quot;);

		GridLayout layout = new GridLayout(5, 1);
		setLayout(layout);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		MudaCorListener listener = new MudaCorListener();
		
		for (int i = cores.length-1; i &gt;= 0; i--) {
			btn[i] = new JButton();
			btn[i].addActionListener(listener);
			add(btn[i]);
		}

		setSize(300, 150);
		definirBotoes();
	}
    
    private void definirBotoes()
    {
		for (int i = 0; i &lt; cores.length; i++)
		{
			int index = (i + offset) % cores.length;
			btn[i].setText(nomeCores[index]);
			btn[i].setBackground(cores[index]);
		}
    }
    
	public static void main(String args[]) {
		new Java().setVisible(true);		
	}
	
	public class MudaCorListener implements ActionListener {
	    @Override
	    public void actionPerformed(ActionEvent evt) {
	        offset++;
	        definirBotoes();
	    }
	}	
}

Coloquei os botões num grid para ficar mais fácil de ver. Se quiser, volte-os para a posição que vc tinha antes.

izaelcio

hehehe!! vc esta certo, durante as aulas estive la na sala porem, acredito que a culpa nao é minha pois niguem da minha sala ta consguindo fazer esse exercicio, apesar de trabalhar o dia inteiro numa area totalmente diferente daque estudo acredito ate que to me esforcando.

quanto ao codigo, VC É O CARA… mas as os boteos devem mudar sendo arrastado, e nao pode ser sequencial, ou seja o usuario escolhe qual botao vai ser trocado com outro botao.

e prometo me esforcar mais um pouco, posso te dizer que o pouco que eu sei foi tudo buscando conhecimento sozinho, pq nao posso muito contar com meu professor pois oque ele da a entender para a sala é que a gente que tem que correr atraz ate mesmo quando a gente tem duvida num classe ou um metodo do java.

No mais MUITO OBRIGADO, FICO MUITO AGRADECIDO VINIGODOY…

ViniGodoy

Saquei. O que seu professor está ensinando? Arrasto no Java é realmete muito complexo.

izaelcio

Cara na verdade, ele pediu pra gente comprar um livro do Deitel Java como programar 8 Ed. porem ele so pede pra gente implementar os codigos que estao la, ou seja uma aula basica de digitacao, e depois explica como que funciona o codigo… ja pensei varias vezes entrancar o curso por motivo de nao trabalhar na area e nao ter tempo pra estudar, mas como te disse gosto de jogos e pretendo chegar a desenvolver um jogo um dia…

Como te disse obrigado pela forca e cancei de mecher com esse exercicio. vo dar uma descancada agora e mais tarde quem sabe olho pra cara desse exercicio de novo.

Criado 12 de junho de 2011
Ultima resposta 12 de jun. de 2011
Respostas 17
Participantes 4