Engenharia e ArquiteturaOutros temasCesgranrio 2006
Petrobras
Questão de Engenharia e Arquitetura
) CONTINUA 15
As duas classes a seguir estão sendo elaboradas por uma analista. O objetivo é fazer com que, em um Applet Java, duas threads atualizem um mesmo objeto, neste caso, um TextArea. Depois de carregado o Applet Java, o usuário deverá clicar em um botão para fazer com que as duas threads iniciem o seu processamento. A TextArea é, então, atualizada pelas duas threads até que o processamento chegue ao fim. import java.awt.*; import java.applet.*; public class TCollision extends Applet { java.awt.Panel fButtonPanel; java.awt.Button fStartButton; java.awt.Panel fMainPanel; java.awt.TextArea fTextArea; static final boolean kIn = true; static final boolean kOut = false; void started (java.awt.event.ActionEvent e) { TRodThread inThread = new TRodThread (kIn, fTextArea); inThread.setPriority(Thread.NORM_PRIORITY); inThread.start(); TRodThread outThread = new TRodThread (kOut, fTextArea); outThread.setPriority(Thread.NORM_PRIORITY); outThread.start(); fStartButton.setEnabled(false); } public void init() { super.init(); fButtonPanel = new java.awt.Panel(); fButtonPanel.setBounds(0, 240, 426, 21); add(fButtonPanel); fStartButton = new java.awt.Button(“Start”); fButtonPanel.add(fStartButton); fMainPanel = new java.awt.Panel(); add(fMainPanel); fTextArea = new java.awt.TextArea(); fMainPanel.add(fTextArea); fStartButton.addActionListener (new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { run(); } }); } } class TRodThread extends Thread { static short fPosition = 10; boolean fDirection; static TextArea fTextArea; short fUseCount = 0; 16 TRodThread (boolean theDirection, TextArea theTextArea) { if (fTextArea == null) fTextArea = theTextArea; fDirection = theDirection; } public void run () { String theDirectionString = fDirection ?”In”:”Out”; while (fPosition > 0 && fPosition < 20 && fUseCount < 1000) { if (fDirection) fPosition++; else fPosition—; fUseCount++; fTextArea.setText(String.valueOf(fUseCount)+” : “+String.valueOf(fPosition)+”\n”); } fTextArea.appendText(“Final position = “+String.valueOf(fPosition)+”\n”); fTextArea.appendText(“Moved = “+theDirectionString+” “+String.valueOf(fUseCount)+” times.\n”); } } Dentre as modificações propostas, qual deve ser feita no código acima para que o Applet Java funcione conforme esperado?
Mais questões de Outros temas
- FGVUm cilindro contém um gás ideal a uma temperatura de 27 °C e ocupando um volume de 15 L sob uma pressão de 100 kPa. O gás é aquecido a uma temperatura de 177 °C, mantendo-se o vol…
- FundatecEntre as vantagens da implantação de sistemas de Desenvolvimento Orientado ao Transporte (DOT) estão a redução do tempo de , otimização do uso de e serviços, contenção do horizont…
- FundatecLurdes deseja comprar 3 chocolates para dar aos seus filhos. Lurdes pagou com uma nota de R$ 20,00 e comprou 3 chocolates no valor de R$ 4,00 cada. O valor do troco de Lurdes foi…
- FundatecDurante a análise estrutural de um edifício, verificou-se que uma viga secundária descarrega sua reação de apoio diretamente sobre uma viga principal, em uma região próxima ao mei…
- FGVUm sistema de distribuição ocorreu um curto-circuito em uma das fases para o terra. A tensão de base no local da falta é de 380 V e a tensão de pré-falta igual a 342 V. O somatóri…
Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.

