Matrix código aberto

7 respostas
oljr35

Boa tarde Programadores!

segue abaixo o codigo do efeito matrix em um rodapé dentro de um jframe. gostaria que um de voces se habilitace e fizesse uma leitura do mesmo corrigindo as falhas e me enviace de volta como resposta. só tenho 5 meses na área e ganhei esse código do programador Tunai. agradeço sua atenção dispensada.

import java.awt.*;  
import java.util.*;  
import javax.swing.*;  
  
@SuppressWarnings("serial")  
public class matrixRain extends JFrame {   
private static final int FONT_SIZE = 20;  
private static final int NUMBER_OF_REPEATS = 5;  
private static final String TEXT = new String("あ     た        
ア        カ                                  サ    ザ      ジ    
ズ       ゼ       ゾ           シ    ス      セ   ソ    キ   ク   ケ   コ   イ  ウ   エ    オ   ジャ な");  
private static JPanel panel = new JPanel(null);  
private static Random random = new Random();  
private static JLabel label[] = new JLabel[NUMBER_OF_REPEATS];  
  
public matrixRain() {          
   this.add(panel);  
   panel.setBackground(Color.BLACK);  
}  
public void scroll() {  
      //array to hold x coordinates for the labels  
    int[] random_x = new int[NUMBER_OF_REPEATS];  
    //create an infinite loop  
    while (true) {  
        //initialise all the labels to random characters  
        for (int i = 0; i < NUMBER_OF_REPEATS; i++) {  
         int character_initial = random.nextInt(TEXT.length());  
          random_x[i] = random.nextInt(panel.getWidth() / FONT_SIZE) - 1;  
          label[i] = new JLabel("" + TEXT.charAt(character_initial));  
          panel.add(label[i]);  
          label[i].setFont(new Font("monospaced", Font.PLAIN, FONT_SIZE));  
        label[i].setForeground(new Color(0, 255, 0));  
     }  
    // change the text of the labels and their position  
    for (int j = 0; j < (panel.getHeight() / FONT_SIZE) * 2; j++) {  
        int character = random.nextInt(TEXT.length());  
        //move each character  
       for (int i = 0; i < NUMBER_OF_REPEATS; i++) {  
            label[i].setBounds(random_x[i] * FONT_SIZE, j * (FONT_SIZE / 2), FONT_SIZE, FONT_SIZE);  
            label[i].setText("" + TEXT.charAt(character));  
            label[i].setForeground(new Color(0, 255 - (j * 5), 0));       
           for (int k = 0; k < NUMBER_OF_REPEATS; k++) {  
               int character_initial = random.nextInt(TEXT.length());  
               random_x[k] = random.nextInt(panel.getWidth() / FONT_SIZE) - 1;  
                label[k] = new JLabel("" + TEXT.charAt(character_initial));  
                panel.add(label[k]);  
                label[k].setFont(new Font("monospaced", Font.PLAIN, FONT_SIZE));  
               label[k].setForeground(new Color(0, 255, 0));  
               Color colour = label[k].getForeground();  
               if (colour.getGreen() <= 80) {  
                    panel.remove(label[k]);  
                   k = (panel.getHeight() / FONT_SIZE) * 2;  
                }  
            }  
        }  
        // pause between each character  
        try {  
            Thread.sleep(15);  
        } catch (Exception e) {  
        }  
     }  
  }  
        }  
  public static void main(String[] args) {  
      matrixRain frame = new matrixRain();  
      frame.setVisible(true);  
      frame.setSize(600, 400);  
     frame.setResizable(false);  
     frame.setMinimumSize(new Dimension(300, 200));  
      frame.setLocationRelativeTo(null);  
     frame.setTitle("Matrix Code Emulator by Ricco");  
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     
      frame.scroll();  
  }  
}

7 Respostas

E

Que falhas ele tem?

oljr35

está todo em ciinza onde tem o nome do autor está errado, e no inicio tem de ser aposentado. é tudo que sei pois foi um amigo do guj que me du esse toque. se for me ajudar mande resposta dizendo que sim ou que não. obrigado no aguardo.

S

caro colega oljr35

sobre estar tudo cinza é porque o código esta comentado,
da uma lida nesse Link http://www.universidadejava.com.br/docs/comentariosdecodigoemjava
pode lhe esclarecer alguma duvida referente a comentários dentro do código java.

quando tiver uma duvida por mais pressa que você tenha em soluciona-la
crie apenas um tópico no fórum e coloque informações pertinentes a seu problema(erros, finalidade…),
essas informações serão uteis na hora de lhe ajudar a solucionar seu problema.

Att,
santos93

oljr35

Obriagodo Professor! será que o Senhor pode destacar os pontos que estão comentado? e depois testa-lo pra ver se ele executa.
obrigado, vou ler o link e vou evitar a pressa.

S

Ja fiz algumas alterações e o código esta funcionando.
ele exibe os caracteres na tela.

bom como sugeri na postagem anterior, de uma lida no link
ira lhe ajudar a entender como resolver o problema do código,
ou pelo menos dar um primeiro passo

oljr35

Professor será que o Senhor pode me enviar por resposta o código alterado? se o Senhor fizer isto estará me dando uma grande mão, e não se preocupe vou ler o link está noite, pois estou com minha filha que mora com a mãe sou divorciado há 4 anos.
agradeço sua atenção dispensada.

oljr35

Mestre eu sei que o senhor quer que eu aprenda fazendo, vou ler o link já salvei o mesmo no word. más acontece que tenho urgência no caso eu prometo que vou me dedicar mais. más por favor envie-me o código com as correções. agradeço sua atenção dispenada e compreeção.

Criado 1 de agosto de 2013
Ultima resposta 1 de ago. de 2013
Respostas 7
Participantes 3