TIMER java

31/10/2019

8

Bom dia,

Pessoal preciso usar um temporizador em java.
Não tenho experiencia em java.
Problema que não é aceito dentro de uma função statica. Nao consigo colocar dentro da MAIN


Objetivo é fazer com que a conexão seja mantida para atualizar cor da tela caso perca conexao com servidor VERMELHO e VERDE quando retorna conexao


public class Terminal extends JFrame {

    private Color color;
    Timer timer;

    public static String Connectar() {
        int porta = 1560;
        String servidor = "xx.xx.xxx.xx";
        Socket clientSocket = null;
        String status = "false";

        try {
            clientSocket = new Socket(servidor, porta);
            clientSocket.setKeepAlive(true);
            status = String.valueOf(clientSocket.isConnected());
            //clientSocket.close();
            //clientSocket.getKeepAlive();
        } catch (IOException ex) {
            status = ex.toString();
        }

        return status;
    }


    public void Tarefa() {
        int delay = 2000;   // delay de 2 seg.
        int interval = 5000;  // intervalo de 1 seg.       
        timer.setDelay(delay);

        timer.start();
    }   

    //private JLabel jLabelErro;
    /**
     * @param args the command line arguments
     */
    // ActionListener faz button1 iteragir com entry1
    public static void main(String[] args) {

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                JFrameTerminal janela = new JFrameTerminal();
                janela.setLocationRelativeTo(null);
                janela.setDefaultCloseOperation(janela.DISPOSE_ON_CLOSE);
                janela.pack();
                janela.setVisible(true);          
                
                String status = Connectar();
             
                if (status == "true") {
                    //CONECATADO
                    Color verde = new Color(0, 128, 0);
                    janela.getContentPane().setBackground(verde);

                    JLabel jLabelErro = new JLabel();
                    jLabelErro = new JLabel("Connetion OK");
                    jLabelErro.setBounds(10, 170, 80, 15);
                    janela.getContentPane().add(jLabelErro);
                    jLabelErro.setForeground(Color.BLUE);
                  
                    //break;
                } else {
                     //DESCONECTADO
                    Color vermelho = new Color(255, 0, 0);
                    janela.getContentPane().setBackground(vermelho);                   

                    JLabel jLabelErro = new JLabel();
                    jLabelErro = new JLabel("Connetion Fail");
                    jLabelErro.setBounds(10, 170, 80, 15);
                    janela.getContentPane().add(jLabelErro);
                    jLabelErro.setForeground(Color.BLUE);
                   
                    //break;                  
                }                
            }
        }
        );
    }
}
Responder

Posts

07/11/2019

Manoel Junior

Então, você definiu método dentro de método... Isso foge da orientação a objetos. É convencional o run ser criado fora do Main, depois instanciar a classe e chamar o método.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar