Ir ao conteúdo

Posts recomendados

Postado

Então... tenho um trabalho da faculdade que é desenvolver um joguinho da velha, até agora tudo certo :D, porém... coloquei para marcar a jogada que venceu a partida, negocio que quando clico em Reiniciar(Novo jogo), os botões estão resetando e as cores não.

 

image.png.ba22db38fab8bc4e77d0bbd50095af3b.png

 

Já cacei na internet e não encontrei nada sobre isso, alguém sabe dizer?

  • Curtir 1
Postado

Vou mandar aqui

 

package testejogovelha;

import java.awt.Color;
import javax.swing.JOptionPane;

/**
 *
 * @author JrPaulino
 */
public class Jogo extends javax.swing.JFrame {
public boolean joga=true;
public boolean jogb=true;
public int contpos=0;
public int k=0, i=0;
int op;
public String linha1, linha2, linha3, coluna1, coluna2, coluna3, diagonal1, diagonal2;
String [][]posvetor=new String[3][3];

    public Jogo() {
        initComponents();
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        btn1 = new javax.swing.JButton();
        btn2 = new javax.swing.JButton();
        btn3 = new javax.swing.JButton();
        btn4 = new javax.swing.JButton();
        btn5 = new javax.swing.JButton();
        btn6 = new javax.swing.JButton();
        btn7 = new javax.swing.JButton();
        btn8 = new javax.swing.JButton();
        btn9 = new javax.swing.JButton();
        btnreiniciar = new javax.swing.JButton();
        txtvisor = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        btn1.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn1ActionPerformed(evt);
            }
        });

        btn2.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn2ActionPerformed(evt);
            }
        });

        btn3.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn3ActionPerformed(evt);
            }
        });

        btn4.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn4ActionPerformed(evt);
            }
        });

        btn5.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn5ActionPerformed(evt);
            }
        });

        btn6.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn6ActionPerformed(evt);
            }
        });

        btn7.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn7ActionPerformed(evt);
            }
        });

        btn8.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn8ActionPerformed(evt);
            }
        });

        btn9.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
        btn9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn9ActionPerformed(evt);
            }
        });

        btnreiniciar.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
        btnreiniciar.setText("Reiniciar");
        btnreiniciar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnreiniciarActionPerformed(evt);
            }
        });

        txtvisor.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        txtvisor.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        txtvisor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtvisorActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(85, 85, 85)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(txtvisor, javax.swing.GroupLayout.PREFERRED_SIZE, 315, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(btn4, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(btn5, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(btn6, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(btn1, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(btn2, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(btn3, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(btn7, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(btn8, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(btn9, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(155, 155, 155)
                        .addComponent(btnreiniciar, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(88, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(83, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btn3, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn2, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn1, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btn4, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn5, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn6, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(btn7, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn8, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btn9, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtvisor, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnreiniciar, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        pack();
        setLocationRelativeTo(null);
    }// </editor-fold>                        

    private void txtvisorActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
    }                                        

    public void verficaJogadordaVez(){
        if(joga&&jogb){
            this.op=1;
            joga = false;
            jogb = true;
            txtvisor.setText("Vez do jogador O");
        }else if(joga&&jogb==false){
            this.op=1;
            joga = false;
            jogb = true;
            txtvisor.setText("Vez do jogador O");
        }else{
            this.op=2;
            joga = true;
            jogb = false;
            txtvisor.setText("Vez do jogador X");
        }
                
    }
    
    public void Limpaposicoes(){
        for(i=0; i<3; i++){
            for(k=0; k<3; k++){
                posvetor[i][k]="";
                System.out.println(posvetor[i][k]);
            }
        }
    }
public void DesativaB(){
    btn1.setEnabled(false);
    btn2.setEnabled(false);
    btn3.setEnabled(false);
    btn4.setEnabled(false);
    btn5.setEnabled(false);
    btn6.setEnabled(false);
    btn7.setEnabled(false);
    btn8.setEnabled(false);
    btn9.setEnabled(false);
    
}

public void verificapos (){
    contpos=0;
    for(i=0; i<3; i++){
        for(k=0; k<3; k++){
            if(posvetor[i][k] == "X"|posvetor[i][k] == "O" ){
            contpos+=1;
            }
        }
        }
}


    public void VerificarVencedor(){
        linha1=posvetor[0][0]+posvetor[0][1]+posvetor[0][2];
        linha2=posvetor[1][0]+posvetor[1][1]+posvetor[1][2];
        linha3=posvetor[2][0]+posvetor[2][1]+posvetor[2][2];
        
        coluna1=posvetor[0][0]+posvetor[1][0]+posvetor[2][0];
        coluna2=posvetor[0][1]+posvetor[1][1]+posvetor[2][1];
        coluna3=posvetor[0][2]+posvetor[1][2]+posvetor[2][2];
        
        diagonal1=posvetor[0][0]+posvetor[1][1]+posvetor[2][2];
        diagonal2=posvetor[0][2]+posvetor[1][1]+posvetor[2][0];
        
        if(linha1.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn1.setBackground(Color.green);
            btn2.setBackground(Color.green);
            btn3.setBackground(Color.green);
            DesativaB();
        }if(linha2.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn4.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn6.setBackground(Color.green);
            DesativaB();    
        }if(linha3.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn7.setBackground(Color.green);
            btn8.setBackground(Color.green);
            btn9.setBackground(Color.green);
            DesativaB(); 
        }if(coluna1.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn1.setBackground(Color.green);
            btn4.setBackground(Color.green);
            btn7.setBackground(Color.green);
            DesativaB();
        }if(coluna2.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn2.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn8.setBackground(Color.green);
            DesativaB(); 
        }if(coluna3.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn3.setBackground(Color.green);
            btn6.setBackground(Color.green);
            btn9.setBackground(Color.green);
            DesativaB(); 
        }if(diagonal1.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn1.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn9.setBackground(Color.green);
            DesativaB(); 
        }if(diagonal2.equals("XXX")){
            txtvisor.setText("O Vencedor é o X"); 
            btn3.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn7.setBackground(Color.green);
            DesativaB();
        }else if(linha1.equals("OOO")){
            txtvisor.setText("O Vencedor é o o"); 
            btn1.setBackground(Color.green);
            btn2.setBackground(Color.green);
            btn3.setBackground(Color.green);
            DesativaB();
        }if(linha2.equals("OOO")){
            txtvisor.setText("O Vencedor é o o"); 
            btn4.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn6.setBackground(Color.green);
        }if(linha3.equals("OOO")){
            txtvisor.setText("O Vencedor é o O"); 
            btn7.setBackground(Color.green);
            btn8.setBackground(Color.green);
            btn9.setBackground(Color.green);
            DesativaB();
        }if(coluna1.equals("OOO")){
            txtvisor.setText("O Vencedor é o O"); 
            btn1.setBackground(Color.green);
            btn4.setBackground(Color.green);
            btn7.setBackground(Color.green);
            DesativaB();
        }if(coluna2.equals("OOO")){
            txtvisor.setText("O Vencedor é o O"); 
            btn2.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn8.setBackground(Color.green);
            DesativaB();
        }if(coluna3.equals("OOO")){
            txtvisor.setText("O Vencedor é o O"); 
            btn3.setBackground(Color.green);
            btn6.setBackground(Color.green);
            btn9.setBackground(Color.green);
            DesativaB();
        }if(diagonal1.equals("OOO")){
            txtvisor.setText("O Vencedor é o O"); 
            btn1.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn9.setBackground(Color.green);
            DesativaB();
        }if(diagonal2.equals("OOO")){
            txtvisor.setText("O Vencedor é o O"); 
            btn3.setBackground(Color.green);
            btn5.setBackground(Color.green);
            btn7.setBackground(Color.green);
            DesativaB();
        }else if(contpos==9){
            txtvisor.setText("Não houve vencedor");
        }
    }
    
    private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn1.setText("X");
        posvetor[0][0]="X";
        }else{
        btn1.setText("O");
        posvetor[0][0]="O";
        }
        btn1.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn2ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn2.setText("X");
        posvetor[0][1]="X";
        }else{
        btn2.setText("O");
        posvetor[0][1]="O";
        }
        btn2.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn3ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn3.setText("X");
        posvetor[0][2]="X";
        }else{
        btn3.setText("O");
        posvetor[0][2]="O";
        }
        btn3.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn4ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn4.setText("X");
        posvetor[1][0]="X";
        }else{
        btn4.setText("O");
        posvetor[1][0]="O";
        }
        btn4.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn5ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn5.setText("X");
        posvetor[1][1]="X";
        }else{
        btn5.setText("O");
        posvetor[1][1]="O";
        }
        btn5.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn6ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn6.setText("X");
        posvetor[1][2]="X";
        }else{
        btn6.setText("O");
        posvetor[1][2]="O";
        }
        btn6.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn7ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn7.setText("X");
        posvetor[2][0]="X";
        }else{
        btn7.setText("O");
        posvetor[2][0]="O";
        }
        btn7.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn8ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn8.setText("X");
        posvetor[2][1]="X";
        }else{
        btn8.setText("O");
        posvetor[2][1]="O";
        }
        btn8.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    private void btn9ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        verficaJogadordaVez();
        if(op==1){
        btn9.setText("X");
        posvetor[2][2]="X";
        }else{
        btn9.setText("O");
        posvetor[2][2]="O";
        }
        btn9.setEnabled(false);
        verificapos();
        VerificarVencedor();
    }                                    

    
    private void btnreiniciarActionPerformed(java.awt.event.ActionEvent evt) {                                             
        btn1.setText("");
        btn1.setEnabled(true);
        
        btn2.setText("");
        btn2.setEnabled(true);
        
        btn3.setText("");
        btn3.setEnabled(true);
        
        btn4.setText("");
        btn4.setEnabled(true);
        
        btn5.setText("");
        btn5.setEnabled(true);
        
        btn6.setText("");
        btn6.setEnabled(true);
        
        btn7.setText("");
        btn7.setEnabled(true);
        
        btn8.setText("");
        btn8.setEnabled(true);
        
        btn9.setText("");
        btn9.setEnabled(true);

        Limpaposicoes();
        txtvisor.setText("");
        joga=true;
        jogb=true;
        
                
    }                                            

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Jogo.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Jogo.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Jogo.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Jogo.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Jogo().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton btn1;
    private javax.swing.JButton btn2;
    private javax.swing.JButton btn3;
    private javax.swing.JButton btn4;
    private javax.swing.JButton btn5;
    private javax.swing.JButton btn6;
    private javax.swing.JButton btn7;
    private javax.swing.JButton btn8;
    private javax.swing.JButton btn9;
    private javax.swing.JButton btnreiniciar;
    private javax.swing.JTextField txtvisor;
    // End of variables declaration                   
}

 

  • Curtir 1
Postado

Quando você desativa os botões eles não ficam com a cor de background.

Já para resetar a cor quando clica no botão reiniciar, deixe dessa forma:

private void btnreiniciarActionPerformed(java.awt.event.ActionEvent evt) {
    btn1.setText("");
    btn1.setEnabled(true);
    btn1.setBackground(null);

    btn2.setText("");
    btn2.setEnabled(true);
    btn2.setBackground(null);

    btn3.setText("");
    btn3.setEnabled(true);
    btn3.setBackground(null);

    btn4.setText("");
    btn4.setEnabled(true);
    btn4.setBackground(null);

    btn5.setText("");
    btn5.setEnabled(true);
    btn5.setBackground(null);

    btn6.setText("");
    btn6.setEnabled(true);
    btn6.setBackground(null);

    btn7.setText("");
    btn7.setEnabled(true);
    btn7.setBackground(null);

    btn8.setText("");
    btn8.setEnabled(true);
    btn8.setBackground(null);

    btn9.setText("");
    btn9.setEnabled(true);
    btn9.setBackground(null);

    Limpaposicoes();
    txtvisor.setText("");
    joga = true;
    jogb = true;
}

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!